我使用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—
答案 0 :(得分:229)
更简单的方法是:
希望这有帮助!
答案 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提到的方法,
但问题是它对需要授权的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 中导入时,需要做以下几件事:
--compressed
选项--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