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 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
la source

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!

Onkaar Singh
la source
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": "[email protected]", }' -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
electricbah
la source
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 protected]","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

bonjour_harry
la source
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": "[email protected]", }' 
-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!!!

Rito
la source
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.

Ankit Gupta
la source
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)

Shekhar
la source