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—
curl
httprequest
postman
Marin Bînzari
quelle
quelle
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/event
in der Curl-Anforderung befindet, wurde nicht importiert oder kann von Postman übersprungen werden. Irgendeine Idee, wie man es löst?quelle
1) Geben Sie
https://api-server.com/API/index.php/member/signin
das URL-Eingabefeld ein und wählen SiePOST
Geben aus der Dropdown-Liste2) Geben Sie auf der Registerkarte Überschriften Folgendes ein:
Inhaltstyp: Bild / JPEG
Content-Transfer-Encoding: binär
3) Aktivieren Sie auf der Registerkarte Body das
raw
Optionsfeld 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-data
Optionsfeld und schreiben Sie:key = name Wert = userfile Select
Text
key = filename Wählen SieFile
Ihre profil.jpg aus und laden Sie sie hochquelle
Ich habe den von Onkaar Singh erwähnten Ansatz ausprobiert.
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:
Nach dem Import wurde der Body korrekt importiert, die Header und die URL wurden ebenfalls importiert. Nur der API-Schlüssel 9f4d7f5445e7, der ist
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 (
9f4d7f5445e7
in diesem Fall) nehmen und Base64 Encode ausführen. Nach der Codierung wird der Wert zurückgegebenOWY0ZDdmNTQ0NWU3
. Fügen Sie dann einen neuen Header hinzu, der Schlüsselname wäreAuthorization
und der Schlüsselwert wäreBasic 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!!!
quelle
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.
quelle
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" istkleiner 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)quelle