Simule un CURL específico en PostMan

153

Estoy usando Postman para probar algunas solicitudes de Curl en un servidor API. Los desarrolladores de API nos dieron el comando curl, pero no puedo enviarlo desde Postman. ¿Cómo hacer una solicitud de este tipo del cartero?

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
fuente

Respuestas:

422

Un enfoque más simple sería:

  1. Abrir POSTMAN
  2. Haga clic en la pestaña "Importar" en el lado superior izquierdo.
  3. Seleccione la opción Texto sin formato y pegue su comando cURL.
  4. ¡Presiona importar y tendrás el comando en tu generador de cartero!
  5. Haga clic en Enviar para publicar el comando

¡Espero que esto ayude!

Onkaar Singh
fuente
44
Nunca supe que podías hacer esto hasta que vi esta publicación. ¡Gracias!
austinthedeveloper
3
Esto es exactamente lo que quería. ¡Gracias!
Joshua Dance
3
Lo probé y funcionó parcialmente. Esta es mi solicitud 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 después de importar el cuerpo se importó correctamente, los encabezados y la URL también se importaron. Solo la clave de API 9f4d7f5445e7 que se encuentra -u 9f4d7f5445e7: https://api.myapp.com/api/v1/eventen la solicitud de curl no se importó o puede ser que Postman la omitió. ¿Alguna idea de cómo resolverlo?
Rito
1
Lo descubro para importar cmd curl por myselft. Pero me llevó algún tiempo descubrir dónde está la página con mi rizo importado, parece que no sucede nada al importar un archivo / cmd. Luego debe hacer clic en el botón "código" en la parte superior derecha (debajo del botón Guardar). Luego verá si su rizo está cargado o no.
zhihong
Este enfoque no utilizó las credenciales que codifiqué en él, por lo que tuve que agregarlas manualmente usando Auth> Auth básica, dentro de la solicitud real usando mouse y menús desplegables. Creo que vale la pena mencionarlo, ya que el comportamiento del software es tal que parece haber aceptado y utilizado los créditos: todo lo que obtiene es un "por favor proporcione credenciales válidas" en lugar de "por favor proporcione algunas credenciales".
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
fuente
5

1) Ponga https://api-server.com/API/index.php/member/signinen el cuadro de entrada de url y elija POSTdel menú desplegable

2) En la pestaña Encabezados, ingrese:

Tipo de contenido: image / jpeg

Codificación de transferencia de contenido: binario

3) En la pestaña Cuerpo, seleccione el rawbotón de radio y escriba:

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

seleccione form-datael botón de radio y escriba:

clave = nombre Valor = Text archivo de Fileusuario Seleccionar clave = nombre de archivo Seleccionar y cargar su perfil.jpg

Hola Harry
fuente
5

Probé el enfoque mencionado por Onkaar Singh,

  1. Abrir POSTMAN
  2. Haga clic en la pestaña "Importar" en el lado superior izquierdo.
  3. Seleccione la opción Texto sin formato y pegue su comando cURL.
  4. ¡Presiona importar y tendrás el comando en tu generador de cartero!

Pero el problema es que no funcionó para Apis, lo que requiere autorización.

Esta fue mi solicitud de rizo:

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

Después de importar el cuerpo se importó correctamente, los encabezados y la URL también se importaron. Solo la clave de API 9f4d7f5445e7 que es

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

en la solicitud de rizo no importó.

La forma en que lo resolví es, -u se usa básicamente para Autorización. Entonces, mientras lo usa en Postman, debe tomar la clave API (que es 9f4d7f5445e7en este caso) y hacer Base64 Encode. Una vez codificado, devolverá el valor OWY0ZDdmNTQ0NWU3. Luego agregue un nuevo encabezado, el nombre de la clave seríaAuthorization y el valor de la clave sería Basic OWY0ZDdmNTQ0NWU3. Después de hacer esos cambios, la solicitud funcionó para mí.

Hay codificadores Base64 en línea disponibles, el que utilicé es http://www.url-encode-decode.com/base64-encode-decode/

¡¡¡Espero eso ayude!!!

Rito
fuente
en la pestaña de autorización del cartero, simplemente seleccione Autenticación básica y generará el encabezado Base64
electricalbah
2

a veces cada vez que copia cURL, contiene --comprimido. Elimínelo mientras importa-> Pegar texto sin formato -> haga clic en importar. También resolverá el problema si obtiene el error de sintaxis en cartero al importar cualquier cURL.

En general, cuando la gente copia cURL desde cualquier herramienta proxy como Charles, sucede.

Ankit Gupta
fuente
0

Como se menciona en las respuestas múltiples anteriores, puede importar el cURL en POSTMAN directamente. Pero si la URL está autorizada (o no funciona por alguna razón), le sugiero que agregue manualmente todos los puntos de datos como JSON en su cuerpo de cartero. tomar la URL de la API de cURL.

para la parte de Autorización, simplemente agregue una clave de Autorización y una cadena codificada de base 64 como valor.

ejemplo:

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

Encabezados: Authorization:Basic cnpwX3Rlc3RfWEk5QW5TU0N3RlhjZ0Y6dURjVThLZ3JiQVVnZ3JNS***U056V25J donde "cnpwX3Rlc3RfWEk5QW5TU0N3RlhjZ0Y6dURjVThLZ3JiQVVnZ3JNS *** U056V25J" es la forma codificada de "rzp_test_26ccbdbfe0e84b: 69b2e24412` 38 ".

pequeño consejo: para codificar, puede ir fácilmente a su consola Chrome (haga clic con el botón derecho => inspeccionar) y escriba: btoa("string you want to encode")(o use la autorización básica de cartero)

Shekhar
fuente