我正在使用邮差测试一些Curl请求到API服务器。API开发人员给了我们curl命令,但我不能从邮递员发送它。如何向邮差提出这样的要求?

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—

1)在url输入框中输入https://api-server.com/API/index.php/member/signin,在下拉框中选择POST

2)在Headers页签中输入:

内容类型:图像/ jpeg

Content-Transfer-Encoding:二进制

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

{“描述”:“”,“电话”:“”,“姓”:“”,“app_version”:“2.6.2”、“firstname”:“”,“密码”:“my_pass”、“城市”:“”,“apikey”:“213”,“朗”:“fr”、“平台”:“1”,“电子邮件”:“email@example.com”、“伪”:“例子”}

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

key = name Value = userfile选择文本 选择文件并上传你的profile .jpg


一个更简单的方法是:

开放的邮递员 点击左上角的“导入”标签。 选择Raw Text选项并粘贴cURL命令。 点击导入,您将在您的邮差构建器中拥有命令! 单击Send发送命令


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

开放的邮递员 点击左上角的“导入”标签。 选择Raw Text选项并粘贴cURL命令。 点击导入,您将在您的邮差构建器中拥有命令!

但问题是,它并不适用于需要授权的Apis。

这是我的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

在正确导入正文之后,也导入了标题和Url。只有api密钥9f4d7f5445e7

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

在curl请求中没有导入。

我解决的方法是,-u主要用于授权。因此,当在Postman中使用它时,您必须获取API密钥(在本例中为9f4d7f5445e7)并执行Base64 Encode。编码后,它将返回值OWY0ZDdmNTQ0NWU3。然后添加一个新头,密钥名称为Authorization,密钥值为Basic OWY0ZDdmNTQ0NWU3。在做了这些改变之后,这个请求对我来说是有效的。

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

希望能有所帮助!!


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

有时当你复制cURL时,它包含——压缩。 删除它,同时导入->粘贴原始文本->点击导入。 它还可以解决在导入任何cURL时在postman中出现语法错误的问题。

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


如上面的多个答案所述,您可以直接在POSTMAN中导入cURL。但如果URL是授权的(或由于某种原因不工作) 我建议您可以手动将所有数据点作为JSON添加到邮差体中。从cURL中获取API URL。

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

例子:

curl -u rzp_test_26ccbdbfe0e84b:69b2e24411e384f91213f22a \ https://api.razorpay.com/v1/orders -X POST \——data "金额=50000" \——data "货币=INR" \——data "收据=收据#20" \——data "payment_capture=1" https://api.razorpay.com/v1/orders

{ “金额”:“5000”, “货币”:“INR”, “收据”:“收据#20”, “payment_capture”:“1” }

标题: 授权:基本cnpwX3Rlc3RfWEk5QW5TU0N3RlhjZ0Y6dURjVThLZ3JiQVVnZ3JNS * * * U056V25J 其中“cnpwX3Rlc3RfWEk5QW5TU0N3RlhjZ0Y6dURjVThLZ3JiQVVnZ3JNS***U056V25J”是“rzp_test_26ccbdbfe0e84b:69b2e24411e384f91213f22a”的编码形式

小提示:对于编码,你可以很容易地去你的chrome控制台(右键单击=> inspect)并输入: Btoa(“你想编码的字符串”)(或使用邮递员基本授权)


根据上面的答案,它工作得很好。

如果我们在import中粘贴带有授权数据的curl请求,Postman将自动设置所有头信息。如果需要,我们只在请求体中传递行JSON数据,或者在请求体中通过form-data上传图像。

这只是一个例子。你的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

当你使用Chrome复制cURL (bash)和导入在邮差,你需要做以下事情:

删除——压缩选项 用-d替换——data-raw

否则,cURL错误将导致无效格式。


这里有一个直观的答案

想要一个1分钟的快速教程,请查看这个视频在邮递员中运行curl =======================================================================

在右上角找到Import按钮 选择Raw并粘贴您的curl命令,单击Continue -> Import 您可以确认请求URL、参数和头是否正确导入。


我完全转向失眠应用程序解决了这个问题。

打开失眠应用程序,并将CURL请求粘贴到请求页面的URL部分。 这接受CURL与小差异和CURL从chrome复制作为CRUL命令也。


1.从左上角导入 2.转到原始文本并粘贴代码 3.导入它 4.您可以确认请求URL、参数和头是否正确导入。