Simuler une CURL spécifique dans PostMan


154

J'utilise Postman pour tester certaines requêtes Curl vers un serveur API. Les développeurs d'API nous ont donné la commande curl, mais je ne peux pas l'envoyer depuis le facteur. Comment faire une telle demande auprès du facteur?

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—

Réponses:


423

Une approche plus simple serait:

  1. Ouvrir POSTMAN
  2. Cliquez sur l'onglet «Importer» en haut à gauche.
  3. Sélectionnez l'option Texte brut et collez votre commande cURL.
  4. Appuyez sur Importer et vous aurez la commande dans votre générateur Postman!
  5. Cliquez sur Envoyer pour publier la commande

J'espère que cela t'aides!


4
Je n'ai jamais su que vous pouviez faire ça avant d'avoir vu ce post. Merci!
austinthedeveloper

3
C'est exactement ce que je voulais. Merci!
Joshua Dance

3
Je l'ai essayé et cela a fonctionné partiellement. Ceci est ma requête curl: 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 après avoir importé le corps correctement, les en-têtes et l'URL ont également été importés. Seule la clé api 9f4d7f5445e7 qui se trouve -u 9f4d7f5445e7: https://api.myapp.com/api/v1/eventdans la requête curl n'a pas été importée ou peut être Postman l'a ignorée. Une idée comment le résoudre?
Rito

1
J'ai pensé à importer curl cmd par myselft. Mais il m'a fallu un certain temps pour savoir où se trouve la page avec ma curl importée, il semble que rien ne se passe lors de l'importation d'un fichier / cmd. Vous devez ensuite cliquer sur le bouton "code" en haut à droite (sous le bouton Enregistrer). Ensuite, vous verrez si votre curl est chargé ou non.
zhihong

Cette approche n'utilisait pas les informations d'identification que j'avais codées, il fallait donc les ajouter manuellement en utilisant Auth> Basic Auth, dans la demande réelle à l'aide de la souris et des listes déroulantes. Il convient de mentionner que je pense, puisque le comportement du logiciel est tel qu'il semble avoir accepté et utilisé les crédits: tout ce que vous obtenez est un "veuillez fournir des informations d'identification valides" plutôt que "veuillez fournir des informations d'identification".
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) Mettez https://api-server.com/API/index.php/member/signindans la zone de saisie de l'url et choisissezPOST dans la liste déroulante

2) Dans l'onglet En-têtes, entrez:

Type de contenu: image / jpeg

Content-Transfer-Encoding: binaire

3) Dans l'onglet Corps, sélectionnez le rawbouton radio et écrivez:

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

sélectionnez le form-databouton radio et écrivez:

key = name Value = userfile Select Text key = filename Sélectionnez Fileet téléchargez votre profil.jpg


5

J'ai essayé l'approche mentionnée par Onkaar Singh,

  1. Ouvrir POSTMAN
  2. Cliquez sur l'onglet «Importer» en haut à gauche.
  3. Sélectionnez l'option Texte brut et collez votre commande cURL.
  4. Appuyez sur Importer et vous aurez la commande dans votre générateur Postman!

Mais le problème est que cela n'a pas fonctionné pour les Apis qui nécessitent une autorisation.

C'était ma demande de curl:

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

Après l'importation, le corps a été importé correctement, les en-têtes et l'URL ont également été importés. Seule la clé api 9f4d7f5445e7 qui est

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

dans la demande curl n'a pas importé.

La façon dont j'ai résolu le problème est que -u est essentiellement utilisé pour l'autorisation. Donc, tout en l'utilisant dans Postman, vous devez prendre la clé API (ce qui est 9f4d7f5445e7dans ce cas) et faire Encode Base64. Une fois encodé, il renverra la valeur OWY0ZDdmNTQ0NWU3. Ensuite, ajoutez un nouvel en-tête, le nom de la clé serait Authorizationet la valeur de la clé seraitBasic OWY0ZDdmNTQ0NWU3 . Après avoir apporté ces modifications, la demande a fonctionné pour moi.

Il existe des encodeurs Base64 en ligne disponibles, celui que j'ai utilisé est http://www.url-encode-decode.com/base64-encode-decode/

J'espère que ça aide!!!


sur l'onglet d'autorisation du facteur, sélectionnez simplement Auth de base et il générera l'en-tête Base64
electricbah

2

parfois, chaque fois que vous copiez cURL, il contient --compressed. Retirez-le lors de l'importation -> Coller le texte brut -> cliquez sur importer. Cela résoudra également le problème si vous obtenez une erreur de syntaxe dans Postman lors de l'importation de toute cURL.

Généralement, lorsque les gens copient cURL à partir de n'importe quel outil proxy comme Charles, cela se produit.


0

Comme mentionné dans plusieurs réponses ci-dessus, vous pouvez importer directement la cURL dans POSTMAN. Mais si l'URL est autorisée (ou ne fonctionne pas pour une raison quelconque), vous suggérez que vous pouvez ajouter manuellement tous les points de données au format JSON dans votre corps de facteur. prenez l'URL de l'API de la cURL.

pour la partie Autorisation, ajoutez simplement une clé d'autorisation et une chaîne codée en base 64 comme valeur.

exemple:

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

En-têtes: Authorization:Basic cnpwX3Rlc3RfWEk5QW5TU0N3RlhjZ0Y6dURjVThLZ3JiQVVnZ3JNS***U056V25J où "cnpwX3Rlc3RfWEk5QW5TU0N3RlhjZ0Y6dURjVThLZ3JiQVVnZ3JNS *** U056V25J" est la forme codée de "rzp_test_26ccbdbfe0e84b: 69b2a24411e384b: 69b2a"

petite astuce: pour l'encodage, vous pouvez facilement accéder à votre console chrome (clic droit => inspecter) et taper: btoa("string you want to encode")(ou utiliser l'autorisation de base postman)

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.