在PostMan中模拟特定的CURL

时间:2015-01-15 06:34:46

标签: curl httprequest postman

我使用Postman来测试一些对API服务器的Curl请求。 API开发人员给了我们curl命令,但我不能用Postman发送它。如何提出这样的要求?

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—

7 个答案:

答案 0 :(得分:229)

更简单的方法是:

  1. 打开POSTMAN
  2. 点击&#34;导入&#34;左上角的标签。
  3. 选择原始文本选项并粘贴cURL命令。
  4. 点击导入,您将在Postman构建器中拥有该命令!
  5. 希望这有帮助!

答案 1 :(得分:4)

1)将https://api-server.com/API/index.php/member/signin放入网址输入框,然后从下拉列表中选择POST

2)在“标题”选项卡中,输入:

内容类型:image / jpeg

Content-Transfer-Encoding:二进制

3)在Body选项卡中,选择raw单选按钮并写入:

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

选择form-data单选按钮并写入:

key = name Value = userfile选择Text key = filename选择File并上传您的profil.jpg

答案 2 :(得分:4)

我尝试了Onkaar Singh提到的方法,

  1. 打开POSTMAN
  2. 点击左上角的“导入”标签。
  3. 选择“原始文本”选项并粘贴cURL命令。
  4. 点击导入,您将在Postman构建器中拥有该命令!
  5. 但问题是它对需要授权的Apis不起作用。

    这是我的卷曲请求:

    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
    

    导入正确导入的正文后,标题和Url也被导入。只有api键9f4d7f5445e7是

    -u 9f4d7f5445e7: https://api.myapp.com/api/v1/event 
    
    卷曲请求中的

    没有导入。

    我解决它的方法是,-u基本上用于授权。因此,在Postman中使用它时,您必须使用API​​密钥(在这种情况下为9f4d7f5445e7)并执行Base64编码。编码后,它将返回值OWY0ZDdmNTQ0NWU3。然后添加新标头,密钥名称为Authorization,密钥值为Basic OWY0ZDdmNTQ0NWU3。做出更改后,请求对我有用。

    有可用的在线Base64编码器,我使用的是http://www.url-encode-decode.com/base64-encode-decode/

    希望它有所帮助!!!

答案 3 :(得分:2)

在使用 Chrome copy as cURL (bash) 并在 Postman 中导入时,需要做以下几件事:

  1. 删除 --compressed 选项
  2. --data-raw替换-d

否则你会得到 invalid format for cURL 错误。

答案 4 :(得分:1)

有时,每当您复制cURL时,它都包含--compressed。 在导入->粘贴原始文本->单击导入时将其删除。 如果您在导入任何cURL时在邮递员中遇到语法错误,也会解决此问题。

通常,当人们从任何代理工具(如Charles)复制cURL时,就会发生这种情况。

答案 5 :(得分:0)

如以上多个答案中所述,您可以直接在POSTMAN中导入cURL。但是,如果URL被授权(或由于某种原因无法使用) 建议您可以在邮递员正文中手动将所有数据点作为JSON添加。从cURL获取API URL。

对于“授权”部分-只需添加一个“授权”密钥和以64为底的编码字符串作为值。

示例:

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

标题: Authorization:Basic cnpwX3Rlc3RfWEk5QW5TU0N3RlhjZ0Y6dURjVThLZ3JiQVVnZ3JNS***U056V25J 其中“ cnpwX3Rlc3RfWEk5QW5TU0N3RlhjZ0Y6dURjVThLZ3JiQVVnZ3JNS *** U056V25J”的编码形式为“ rzp_test_26ccbdbfe0e84b:69b2e24411e384f91213f22a”

小技巧:要进行编码,您可以轻松地进入chrome控制台(右键单击=> inspect),然后输入: btoa("string you want to encode")(或使用邮递员基本授权)

答案 6 :(得分:0)

根据上述答案,效果很好。

如果在导入中粘贴带有授权数据的curl请求,则Postman将自动设置所有标头。我们仅在需要时在请求正文中传递行JSON数据,或通过正文中的表单数据上传图像。

这只是一个例子。您的API应该与其他API不同(如果您的API允许)

curl -X POST 'https://verifyUser.abc.com/api/v1/verification' \
    -H 'secret: secret' \
    -H 'email: user@gmail.com' \
    -H 'accept: application/json, text/plain, */*' \
    -H 'authorizationtoken: bearer' \
    -F 'referenceFilePath= Add file path' \
    --compressed