So testen Sie die REST-API mit der Chrome-Erweiterung "Advanced Rest Client"

89

Den Anweisungen unter dem folgenden Link folgend, habe ich erfolgreich eine REST-API für meine Django-Anwendung erstellt: http://django-rest-framework.org/tutorial/quickstart .

Ich kann es testen, indem ich an der Unix-Eingabeaufforderung Folgendes tue:

curl -H 'Accept: application/json; indent=4' -u root:myPassword http://www.myWebsite.com/users/

Es klappt :)

Ich möchte jedoch den Advanced Rest Client der Chrome-Erweiterung verwenden, um dieselbe Funktionalität zu testen. Ich habe die Erweiterung installiert, weiß aber nicht, wo / wie ich die Felder platzieren soll. Wenn ich meine Vermutung anstelle (wie Sie im Screenshot sehen können), wird die Meldung "Authentifizierungsdaten wurden nicht angegeben" abgelehnt.

Screenshot der fehlgeschlagenen Anfrage

Wie / wo soll ich meine Parameter für die REST-API angeben?

Saqib Ali
quelle

Antworten:

99

Die Erkennbarkeit ist düster, aber es ist ziemlich clever, wie Advanced Rest Client mit der grundlegenden Authentifizierung umgeht. Die erwähnte Abkürzung Abraham hat bei mir nicht funktioniert, aber ein bisschen Stöbern hat gezeigt, wie es geht.

Als erstes müssen Sie den AuthorizationHeader hinzufügen : Menüs

Wenn Sie die valueEingabe fokussieren, wird eine kleine Kleinigkeit angezeigt (beachten Sie das Feld "Konstruieren" unten rechts): Konstruieren Sie den Auth-Wert

Wenn Sie darauf klicken, wird ein Feld angezeigt. Es macht sogar OAuth, wenn Sie wollen! bequeme Eingaben

Tada! Wenn Sie das Wertefeld leer lassen, wenn Sie auf "Konstruieren" klicken, wird das BasicTeil hinzugefügt (ich gehe davon aus, dass es auch das erforderliche OAuth-Material hinzufügt, aber das habe ich nicht versucht, da meine aktuellen Anforderungen grundlegend waren Authentifizierung), sodass Sie nichts tun müssen. füllt das Feld nach Bedarf aus

Shauna
quelle
Für die Basisauthentifizierung - youtube.com/watch?v=1SP1hgm9JqA . Fügen Sie auf der Registerkarte "Kopfzeilenformular" eine Kopfzeile "Autorisierung" hinzu. Sobald Sie mit der Eingabe beginnen, wird automatisch ein Vorschlag gemacht. Klicken Sie im Wert auf die Schaltfläche Bearbeiten (Bleistift) und geben Sie die Authentifizierungsdaten in das Popup ein.
Uutsav
10

Auf dem Screenshot kann ich sehen, dass Sie "Benutzer" - und "Passwort" -Werte an den Dienst übergeben möchten. Sie haben die Parameterwerte im Anforderungsheaderteil gesendet, was falsch ist. Die Werte werden im Anforderungshauptteil und nicht im Anforderungsheader gesendet. Auch deine Syntax ist falsch. Die richtige Syntax lautet: {"user":"user_val","password":"password_val"}. Überprüfen Sie auch den Inhaltstyp. Es sollte mit dem Inhaltstyp übereinstimmen, den Sie für Ihren Dienst festgelegt haben.

pan1490
quelle
7

Dies scheint eine sehr alte Frage zu sein, aber ich gebe eine Antwort, damit sie anderen helfen kann. Sie können die Variablen im zweiten Bildschirm im Formularabschnitt wie unten gezeigt oder im RAW-Format angeben, indem Sie die Variablen wie im zweiten Bild gezeigt anhängen.

Geben Sie Formularvariablen an

Geben Sie im RAW-Format an

Wenn Ihre Variablen und Variablenwerte gültig sind, sollte im Antwortabschnitt eine erfolgreiche Antwort angezeigt werden.

Angela
quelle
Was ist, wenn es sich um eine GET-Anfrage handelt?
Dejell
Ich musste den Content-Type-Header explizit mit dem Wert setzen: application / x-www-form-urlencoded
shasi kanth
6

Das Verknüpfungsformat, das im Allgemeinen für die Basisauthentifizierung verwendet wird, ist http://username:[email protected]/path. Sie möchten auch den Accept-Header in die Anforderung aufnehmen.

Geben Sie hier die Bildbeschreibung ein

Abraham
quelle
Vielen Dank. Ich habe eine Antwort erhalten, die Folgendes enthielt: <p> CSRF-Überprüfung fehlgeschlagen. Anfrage abgebrochen. </ P> Wie komme ich um diese herum?
Saqib Ali
Klingt so, als würden Sie keinen API-Endpunkt treffen, sondern einen Endpunkt, den JavaScript erreichen soll.
Abraham
Dies ist normalerweise eine gute Lösung - es sei denn, Ihre UID oder PWD enthält die Symbole ":" oder "@".
Blamkin86
Möglicherweise müssen Sie den Benutzernamen / das Kennwort per URL verschlüsseln, wenn diese reservierte Zeichen enthalten.
Abraham
Ich habe versucht, Ihre Lösung für den GET-Befehl unter HTTPS zu verwenden, aber es hat nicht funktioniert. zB Benutzer: @ api.com / v2 / sendments Es funktioniert in Curl. Was ist falsch? Es gibt kein Passwort
Dejell
3

In den Header-Bereich müssen Sie schreiben

Autorisierung: Basic aG9sY67890vbGNpbQ ==

Dabei ist string nach basic der 64-Bit-Codierungswert Ihres Benutzernamens: password. PHP-Beispiel zum Abrufen der Header-Werte ist: echo "Authorization: Basic". base64_encode ("myUser: myPassword");

nb: Ich habe Ihre Authentifizierungsmethode als grundlegend angenommen. das kann auch anders sein.

Muktadir
quelle
In der Frage wird speziell gefragt, wie dies in der Chrome-Erweiterung Advanced Rest Client ausgeführt wird.
Shauna
Shaunas Antwort war korrekt und sollte die akzeptierte Antwort sein, aber dieser Kommentar von sharif ist auch nützlich für diejenigen, die neugierig sind, was der Chrome Advanced Rest-Client getan hat, um den Benutzer und das Kennwort für Sie zu verschlüsseln. Vielen Dank.
Deemoe
3

Fügen Sie den Autorisierungsheader hinzu und klicken Sie auf die Schaltfläche mit dem Stift, um den Benutzernamen und die Kennwörter einzugeben

Geben Sie hier die Bildbeschreibung ein

Ahmad Nadeem
quelle
0

Der einfache Weg, um dieses Authentifizierungsproblem zu lösen, besteht darin, das Authentifizierungstoken mit Fiddler zu stehlen.

Schritte

  1. Starten Sie Geiger und Browser.
  2. Navigieren Sie im Browser, um die Webanwendung (Website) zu öffnen und die erforderliche Authentifizierung durchzuführen.
  3. Öffnen Sie Fiddler und klicken Sie auf HTTP 200 HTML-Seitenanforderung. Erfassen des Cookie-Werts mit Fiddler
  4. Kopieren Sie im rechten Bereich aus den Anforderungsheadern den Parameterwert des Cookie-Headers. Geben Sie hier die Bildbeschreibung ein
  5. Öffnen Sie den REST-Client, klicken Sie auf die Registerkarte "Header-Formular" und geben Sie den Cookie-Wert aus der Zwischenablage ein.

Klicken Sie auf die Schaltfläche SENDEN, um die Ergebnisse abzurufen.

Praveen Kumar Thalluri
quelle
0

Bei der neuesten ARC for GET-Anforderung mit Authentifizierung muss ein unformatierter Header mit dem Namen Authorization: authtoken hinzugefügt werden.

Hier finden Sie den Screenshot. Anfrage mit Authentifizierungs- und Abfrageparametern abrufen

Um einen Abfrageparameter hinzuzufügen, klicken Sie auf den Dropdown-Pfeil links neben dem URL-Feld.

Sagar Misal
quelle