Simule uma CURL específica no PostMan

153

Estou usando o Postman para testar algumas solicitações de curl em um servidor de API. Os desenvolvedores da API nos deram o comando curl, mas não posso enviá-lo pelo Postman. Como fazer tal pedido do carteiro?

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
fonte

Respostas:

422

Uma abordagem mais simples seria:

  1. Abra o POSTMAN
  2. Clique na guia "Importar" no canto superior esquerdo.
  3. Selecione a opção Texto não processado e cole seu comando cURL.
  4. Pressione import e você terá o comando no seu construtor Postman!
  5. Clique em Enviar para postar o comando

Espero que isto ajude!

Onkaar Singh
fonte
4
Eu nunca soube que você poderia fazer isso até ver este post. Obrigado!
Austinthedeveloper
3
Isto é exatamente o que eu queria. Obrigado!
Joshua Dance
3
Eu tentei e funcionou parcialmente. Esta é a minha solicitação 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 depois de importar o corpo foi importado corretamente, os cabeçalhos e o URL também foram importados. Somente a chave api 9f4d7f5445e7, que está -u 9f4d7f5445e7: https://api.myapp.com/api/v1/eventna solicitação de curl, não foi importada ou pode ter sido ignorada pelo Postman. Alguma idéia de como resolvê-lo?
Rito 21/06
1
Eu acho que importa importar cacd cmd por mim. Mas levei algum tempo para descobrir onde está a página com meu curl importado, parece que nada acontece ao importar um arquivo / cmd. Você precisa clicar no botão "código" no canto superior direito (no botão Salvar). Então você verá se sua curvatura está carregada ou não.
Zhihong
Essa abordagem não utilizou as credenciais que eu codifiquei nela; portanto, foi necessário adicioná-las manualmente usando Auth> Basic Auth, dentro da solicitação real usando mouse e menus suspensos. Vale mencionar, eu acho, já que o comportamento do software é tal que parece ter aceitado e utilizado os creds: tudo o que você recebe é um "por favor, forneça credenciais válidas" em vez de "por favor, forneça algumas credenciais".
27419 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
fonte
5

1) Coloque https://api-server.com/API/index.php/member/signinna caixa de entrada do URL e escolha POSTno menu suspenso

2) Na guia Cabeçalhos, digite:

Tipo de Conteúdo: image / jpeg

Codificação de transferência de conteúdo: binário

3) Na guia Corpo, selecione o rawbotão de opção e escreva:

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

selecione form-datao botão de opção e escreva:

key = name Valor = userfile Selecione Text key = filename Selecione Filee faça o upload do seu profil.jpg

hello_harry
fonte
5

Eu tentei a abordagem mencionada por Onkaar Singh,

  1. Abra o POSTMAN
  2. Clique na guia "Importar" no canto superior esquerdo.
  3. Selecione a opção Texto não processado e cole seu comando cURL.
  4. Pressione import e você terá o comando no seu construtor Postman!

Mas o problema é que não funcionou para os Apis, o que requer autorização.

Este foi o meu pedido de ondulação:

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

Após a importação, o corpo foi importado corretamente, os cabeçalhos e o URL também foram importados. Somente a chave api 9f4d7f5445e7 que é

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

no pedido de ondulação não foi importado.

O jeito que eu resolvi é, -u é basicamente usado para Autorização. Portanto, ao usá-lo no Postman, você deve pegar a chave da API (que é 9f4d7f5445e7o caso) e executar o Codificador Base64. Uma vez codificado, ele retornará o valor OWY0ZDdmNTQ0NWU3. Em seguida, adicione um novo cabeçalho, o nome da chave seriaAuthorization e o valor da chave seria Basic OWY0ZDdmNTQ0NWU3. Depois de fazer essas alterações, a solicitação funcionou para mim.

Existem codificadores Base64 on-line disponíveis, o que eu usei é http://www.url-encode-decode.com/base64-encode-decode/

Espero que ajude!!!

Rito
fonte
na guia de carteiro autorização basta selecionar Auth Básico e vai gerar a Base64 cabeçalho
electricalbah
2

às vezes, sempre que você copia cURL, ele contém --compressed. Remova-o enquanto importa-> Colar Texto Bruto -> clique em Importar. Também resolverá o problema se você estiver recebendo o erro de sintaxe no carteiro ao importar qualquer cURL.

Geralmente, quando as pessoas copiam o cURL de qualquer ferramenta de proxy como Charles, isso acontece.

Ankit Gupta
fonte
0

Conforme mencionado nas várias respostas acima, você pode importar diretamente o cURL no POSTMAN. Mas se o URL estiver autorizado (ou não estiver funcionando por algum motivo), sugiro que você possa adicionar manualmente todos os pontos de dados como JSON no seu corpo do carteiro. pegue o URL da API do cURL.

para a parte de autorização, basta adicionar uma chave de autorização e uma string codificada de base 64 como valor.

exemplo:

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

Cabeçalhos: Authorization:Basic cnpwX3Rlc3RfWEk5QW5TU0N3RlhjZ0Y6dURjVThLZ3JiQVVnZ3JNS***U056V25J onde "cnpwX3Rlc3RfWEk5QW5TU0N3RlhjZ0Y6dURjVThLZ3JiQVVnZ3JNS *** U056V25J" é a forma codificada de "rzp_test_26ccbdbfe0e84b: 69b2e24411e224f12"

dica pequena: para codificação, você pode facilmente acessar o console do Chrome (clique com o botão direito => inspecionar) e digitar: btoa("string you want to encode")(ou usar a autorização básica do carteiro)

Shekhar
fonte