Simulieren Sie eine bestimmte CURL in PostMan

153

Ich verwende Postman, um einige Curl-Anforderungen an einen API-Server zu testen. Die API-Entwickler haben uns den Befehl curl gegeben, aber ich kann ihn nicht vom Postboten senden. Wie kann ich eine solche Anfrage beim Postboten stellen?

curl -X POST "https://api-server.com/API/index.php/member/signin" -d "{"description":"","phone":"","lastname":"","app_version":"2.6.2","firstname":"","password":"my_pass","city":"","apikey":"213","lang":"fr","platform":"1","email":"[email protected]","pseudo":"example"}"

--0xKhTmLbOuNdArY
Content-Disposition: form-data; name="userfile"; filename="profil.jpg"
Content-Type: image/jpeg
Content-Transfer-Encoding: binary

<ffd8ffe0 00104a46 49460001 01010048 ... a00fffd9>

—0xKhTmLbOuNdArY—
Marin Bînzari
quelle

Antworten:

421

Ein einfacherer Ansatz wäre:

  1. Öffnen Sie POSTMAN
  2. Klicken Sie oben links auf die Registerkarte "Importieren".
  3. Wählen Sie die Option Rohtext und fügen Sie Ihren Befehl cURL ein.
  4. Klicken Sie auf Importieren und Sie haben den Befehl in Ihrem Postman Builder!
  5. Klicken Sie auf Senden, um den Befehl zu veröffentlichen

Hoffe das hilft!

Onkaar Singh
quelle
4
Ich wusste nie, dass du das tun kannst, bis ich diesen Beitrag gesehen habe. Vielen Dank!
Austinthedeveloper
3
Genau das wollte ich. Vielen Dank!
Joshua Dance
3
Ich habe es versucht und es hat teilweise funktioniert. Dies ist meine Curl-Anfrage: curl -v -H "Accept: application/json" -H "Content-type: application/json" -X POST -d ' {"customer_id":"812122", "event":"add_to_cart", "email": "[email protected]", }' -u 9f4d7f5445e7: https://api.myapp.com/api/event Nach dem Import wurde der Body korrekt importiert, die Header und die URL wurden ebenfalls importiert. Nur der API-Schlüssel 9f4d7f5445e7, der sich -u 9f4d7f5445e7: https://api.myapp.com/api/v1/eventin der Curl-Anforderung befindet, wurde nicht importiert oder kann von Postman übersprungen werden. Irgendeine Idee, wie man es löst?
Rito
1
Ich finde es heraus, Curl cmd von mir selbst zu importieren. Aber ich habe einige Zeit gebraucht, um herauszufinden, wo sich die Seite mit meiner importierten Locke befindet. Es sieht so aus, als ob beim Importieren einer Datei / cmd nichts passiert. Sie müssen dann auf die Schaltfläche "Code" oben rechts klicken (unter der Schaltfläche Speichern). Dann werden Sie sehen, ob Ihre Locke geladen ist oder nicht.
Zhihong
Bei diesem Ansatz wurden die von mir codierten Anmeldeinformationen nicht verwendet, daher mussten diese manuell mithilfe von Auth> Basic Auth innerhalb der eigentlichen Anforderung mithilfe von Maus und Dropdowns hinzugefügt werden. Erwähnenswert, denke ich, da das Verhalten der Software so ist, dass sie die Creds akzeptiert und genutzt zu haben scheint: Alles, was Sie erhalten, ist "Bitte geben Sie gültige Anmeldeinformationen an" anstatt "Bitte geben Sie einige Anmeldeinformationen an".
Olisteadman
12
In addition to the answer
1. Open POSTMAN
2. Click on "import" tab on the upper left side.
3. Select the Raw Text option and paste your cURL command.
4. Hit import and you will have the command in your Postman builder!
5. If -u admin:admin are not imported, just go to the Authorization 
   tab, select Basic Auth -> enter the user name eg admin and password eg admin.
This will automatically generate Authorization header based on Base64 encoder
electricbah
quelle
5

1) Geben Sie https://api-server.com/API/index.php/member/signindas URL-Eingabefeld ein und wählen SiePOST Geben aus der Dropdown-Liste

2) Geben Sie auf der Registerkarte Überschriften Folgendes ein:

Inhaltstyp: Bild / JPEG

Content-Transfer-Encoding: binär

3) Aktivieren Sie auf der Registerkarte Body das rawOptionsfeld und schreiben Sie:

{"description":"","phone":"","lastname":"","app_version":"2.6.2","firstname":"","password":"my_pass","city":"","apikey":"213","lang":"fr","platform":"1","email":"[email protected]","pseudo":"example"}

Wählen Sie das form-dataOptionsfeld und schreiben Sie:

key = name Wert = userfile Select Text key = filename Wählen Sie FileIhre profil.jpg aus und laden Sie sie hoch

hallo_harry
quelle
5

Ich habe den von Onkaar Singh erwähnten Ansatz ausprobiert.

  1. Öffnen Sie POSTMAN
  2. Klicken Sie oben links auf die Registerkarte "Importieren".
  3. Wählen Sie die Option Rohtext und fügen Sie Ihren Befehl cURL ein.
  4. Klicken Sie auf Importieren und Sie haben den Befehl in Ihrem Postman Builder!

Das Problem ist jedoch, dass es für die Apis nicht funktioniert hat, für die eine Autorisierung erforderlich ist.

Dies war meine Curl-Anfrage:

curl -v -H "Accept: application/json" -H "Content-type:
application/json" -X POST -d ' 
{"customer_id":"812122", "event":"add_to_cart", "email": "[email protected]", }' 
-u 9f4d7f5445e7: https://api.myapp.com/api/event

Nach dem Import wurde der Body korrekt importiert, die Header und die URL wurden ebenfalls importiert. Nur der API-Schlüssel 9f4d7f5445e7, der ist

-u 9f4d7f5445e7: https://api.myapp.com/api/v1/event 

in der Curl-Anfrage nicht importiert.

So wie ich es gelöst habe, wird -u grundsätzlich für die Autorisierung verwendet. Während Sie es in Postman verwenden, müssen Sie den API-Schlüssel ( 9f4d7f5445e7in diesem Fall) nehmen und Base64 Encode ausführen. Nach der Codierung wird der Wert zurückgegeben OWY0ZDdmNTQ0NWU3. Fügen Sie dann einen neuen Header hinzu, der Schlüsselname wäre Authorizationund der Schlüsselwert wäre Basic OWY0ZDdmNTQ0NWU3. Nachdem ich diese Änderungen vorgenommen hatte, funktionierte die Anfrage für mich.

Es sind Online-Base64-Encoder verfügbar. Der von mir verwendete ist http://www.url-encode-decode.com/base64-encode-decode/.

Ich hoffe es hilft!!!

Rito
quelle
Wählen Sie auf der Registerkarte "Autorisierung" des Postboten einfach "Basisauthentifizierung" aus, um den Base64-Header zu generieren
electricbah
2

Manchmal enthält es --compressed, wenn Sie cURL kopieren. Entfernen Sie es beim Importieren -> Rohtext einfügen -> klicken Sie auf Importieren. Es wird auch das Problem lösen, wenn Sie beim Importieren einer beliebigen cURL den Syntaxfehler in postman erhalten.

Im Allgemeinen passiert es, wenn Leute cURL von Proxy-Tools wie Charles kopieren.

Ankit Gupta
quelle
0

Wie oben in mehreren Antworten erwähnt, können Sie die cURL direkt in POSTMAN importieren. Wenn die URL jedoch autorisiert ist (oder aus irgendeinem Grund nicht funktioniert), können Sie alle Datenpunkte manuell als JSON in Ihrem Postbotenkörper hinzufügen. Nehmen Sie die API-URL aus der cURL.

Fügen Sie für den Autorisierungsteil einfach einen Autorisierungsschlüssel und eine Basis-64-codierte Zeichenfolge als Wert hinzu.

Beispiel:

curl -u rzp_test_26ccbdbfe0e84b:69b2e24411e384f91213f22a \ https://api.razorpay.com/v1/orders -X POST \ --data "amount=50000" \ --data "currency=INR" \ --data "receipt=Receipt #20" \ --data "payment_capture=1" https://api.razorpay.com/v1/orders

{ "amount": "5000", "currency": "INR", "receipt": "Receipt #20", "payment_capture": "1" }

Überschriften: Authorization:Basic cnpwX3Rlc3RfWEk5QW5TU0N3RlhjZ0Y6dURjVThLZ3JiQVVnZ3JNS***U056V25J wobei "cnpwX3Rlc3RfWEk5QW5TU0N3RlhjZ0Y6dURjVThLZ3JiQVVnZ3JNS *** U056V25J" die codierte Form von "rzp_test_26ccbdbfe0e84b: 69b2e24412f114" ist

kleiner Tipp: Zum Codieren können Sie einfach zu Ihrer Chrome-Konsole gehen (Rechtsklick => inspizieren) und Folgendes eingeben: btoa("string you want to encode")(oder die grundlegende Berechtigung für Postboten verwenden)

Shekhar
quelle