Simula un CURL specifico in PostMan


153

Sto usando Postman per testare alcune richieste Curl a un server API. Gli sviluppatori dell'API ci hanno dato il comando curl, ma non posso inviarlo dal Postman. Come fare una tale richiesta dal postino?

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@example.com","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—

Risposte:


422

Un approccio più semplice sarebbe:

  1. Apri POSTMAN
  2. Fai clic sulla scheda "Importa" nella parte in alto a sinistra.
  3. Seleziona l'opzione Raw Text e incolla il tuo comando cURL.
  4. Premi import e avrai il comando nel tuo costruttore Postman!
  5. Fai clic su Invia per inviare il comando

Spero che questo ti aiuti!


4
Non ho mai saputo che avresti potuto farlo finché non avessi visto questo post. Grazie!
austinthedeveloper

3
Questo è esattamente quello che volevo. Grazie!
Joshua Dance,

3
L'ho provato e ha funzionato parzialmente. Questa è la mia richiesta di arricciatura: curl -v -H "Accept: application/json" -H "Content-type: application/json" -X POST -d ' {"customer_id":"812122", "event":"add_to_cart", "email": "abc@def.com", }' -u 9f4d7f5445e7: https://api.myapp.com/api/event dopo aver importato il corpo è stato importato correttamente, anche le intestazioni e l'Url sono stati importati. Solo la chiave API 9f4d7f5445e7 presente -u 9f4d7f5445e7: https://api.myapp.com/api/v1/eventnella richiesta di arricciatura non è stata importata o può essere ignorata da Postman. Qualche idea su come risolverlo?
Rito,

1
Lo capisco per importare curl cmd di myselft. Ma mi ci è voluto un po 'di tempo per scoprire dov'è la pagina con il mio ricciolo importato, sembra che non accada nulla durante l'importazione di un file / cmd. È quindi necessario fare clic sul pulsante "codice" in alto a destra (sotto il pulsante Salva). Quindi vedrai se il tuo ricciolo è caricato o meno.
Zhihong,

Questo approccio non utilizzava le credenziali che avevo codificato, quindi doveva aggiungerle manualmente usando Auth> Basic Auth, all'interno della richiesta effettiva usando mouse e menu a discesa. Vale la pena ricordare che, poiché il comportamento del software è tale che sembra aver accettato e utilizzato i crediti: tutto ciò che si ottiene è un "si prega di fornire credenziali valide" piuttosto che "si prega di fornire alcune credenziali".
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

5

1) Inserisci https://api-server.com/API/index.php/member/signinnella casella di input dell'URL e scegli POSTdal menu a discesa

2) Nella scheda Intestazioni, inserisci:

Tipo di contenuto: image / jpeg

Content-Transfer-Encoding: binario

3) Nella scheda Corpo, seleziona il rawpulsante di opzione e scrivi:

{"description":"","phone":"","lastname":"","app_version":"2.6.2","firstname":"","password":"my_pass","city":"","apikey":"213","lang":"fr","platform":"1","email":"email@example.com","pseudo":"example"}

Selezionare form-data pulsante di opzione e scrivi:

chiave = nome Valore = file utente Seleziona Text chiave = nome file Seleziona Filee carica il tuo profilo.jpg


5

Ho provato l'approccio citato da Onkaar Singh,

  1. Apri POSTMAN
  2. Fai clic sulla scheda "Importa" nella parte in alto a sinistra.
  3. Seleziona l'opzione Raw Text e incolla il tuo comando cURL.
  4. Premi import e avrai il comando nel tuo costruttore Postman!

Ma il problema è che non ha funzionato per Apis che richiede l'autorizzazione.

Questa era la mia richiesta di arricciatura:

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

Dopo aver importato il corpo è stato importato correttamente, anche le intestazioni e l'Url sono stati importati. Solo la chiave API 9f4d7f5445e7 che è

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

nella richiesta di arricciatura non importato.

Il modo in cui l'ho risolto è: -u è sostanzialmente usato per l'autorizzazione. Quindi, mentre lo usi in Postman, devi prendere la chiave API (che è 9f4d7f5445e7in questo caso) ed eseguire Codifica Base64. Una volta codificato, restituirà il valore OWY0ZDdmNTQ0NWU3. Quindi aggiungere una nuova intestazione, il nome della chiave sarebbe Authorizatione il valore della chiave sarebbe Basic OWY0ZDdmNTQ0NWU3. Dopo aver apportato tali modifiche, la richiesta ha funzionato per me.

Sono disponibili encoder Base64 online, quello che ho usato è http://www.url-encode-decode.com/base64-encode-decode/

Spero che sia d'aiuto!!!


nella scheda autorizzazione del postino basta selezionare Autent di base e genererà l'intestazione Base64
electricbah

2

a volte ogni volta che copi cURL, contiene --compressed. Rimuovilo durante l'importazione-> Incolla testo non elaborato -> fai clic su Importa. Risolverà anche il problema se si verifica l'errore di sintassi nel postino durante l'importazione di un codice CURL.

Generalmente, quando le persone copiano cURL da qualsiasi strumento proxy come Charles, succede.


0

Come menzionato in più risposte sopra puoi importare direttamente il cURL in POSTMAN. Ma se l'URL è autorizzato (o non funziona per qualche motivo), suggerisco che è possibile aggiungere manualmente tutti i punti dati come JSON nel corpo del postino. prendi l'URL dell'API dal cURL.

per la parte Autorizzazione: basta aggiungere una chiave di autorizzazione e una stringa codificata base 64 come valore.

esempio:

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" }

Foraggio: Authorization:Basic cnpwX3Rlc3RfWEk5QW5TU0N3RlhjZ0Y6dURjVThLZ3JiQVVnZ3JNS***U056V25J dove "cnpwX3Rlc3RfWEk5QW5TU0N3RlhjZ0Y6dURjVThLZ3JiQVVnZ3JNS *** U056V25J" è la forma codificata di "rzp_test_26ccbdbfe0e84b: 69b2e2411

piccolo suggerimento: per la codifica, puoi facilmente andare alla tua console Chrome (tasto destro => ispeziona) e digitare: btoa("string you want to encode")(o utilizzare l'autorizzazione base postino)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.