ChatGPT解决这个技术问题 Extra ChatGPT

在 PostMan 中模拟特定的 CURL

我正在使用 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—
有关 1 分钟的快速教程,请查看此视频 youtu.be/CvutW041-2k

A
Anye

一个更简单的方法是:

打开 POSTMAN 单击左上角的“导入”选项卡。选择原始文本选项并粘贴您的 cURL 命令。点击导入,您将在 Postman 构建器中拥有该命令!单击发送以发布命令


直到我看到这篇文章,我才知道你能做到这一点。谢谢!
这正是我想要的。谢谢!
我试过了,它部分工作。这是我的 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 也已导入。只有 curl 请求中的 -u 9f4d7f5445e7: https://api.myapp.com/api/v1/event 的 api 密钥 9f4d7f5445e7 没有导入或可能被邮递员跳过。知道如何解决吗?
我想办法自己导入 curl cmd。但是我花了一些时间找出导入 curl 的页面在哪里,导入文件/cmd 时似乎什么也没发生。然后,您需要单击右上角的“代码”按钮(在保存按钮下)。然后你会看到你的 curl 是否被加载。
这种方法没有利用我编码到其中的凭据,因此必须使用 Auth > Basic Auth 手动添加这些凭据,在实际请求中使用鼠标和下拉菜单。值得一提的是,我认为,由于该软件的行为似乎已经接受并使用了凭据:您得到的只是“请提供有效凭据”而不是“请提供一些凭据”。
e
electricalbah
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

R
Rito

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

打开 POSTMAN 单击左上角的“导入”选项卡。选择原始文本选项并粘贴您的 cURL 命令。点击导入,您将在 Postman 构建器中拥有该命令!

但问题是它不适用于需要授权的 API。

这是我的卷曲请求:

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 编码。编码后,它将返回值 OWY0ZDdmNTQ0NWU3。然后添加一个新的标头,键名是 Authorization,键值是 Basic OWY0ZDdmNTQ0NWU3。进行更改后,该请求对我有用。

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

希望能帮助到你!!!


在邮递员的授权选项卡上,只需选择基本身份验证,它将生成 Base64 标头
h
hello_harry

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

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

内容类型:图片/jpeg

内容传输编码:二进制

3) 在正文选项卡中,选择 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 单选按钮并写入:

键 = 名称 值 = 用户文件 选择 Text 键 = 文件名 选择 File 并上传您的 profile.jpg


D
Derek Liang

当您使用 Chrome copy as cURL (bash) 并在 Postman 中导入时,您需要执行以下操作:

删除 --compressed 选项 将 --data-raw 替换为 -d

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


D
Dharman

这是一个视觉答案

有关 1 分钟的快速教程,请查看此视频 Run curl in Postman
=================================== ======================================

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


A
Ankit Gupta

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

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


S
Shekhar

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

对于授权部分 - 只需添加一个授权密钥和 base 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 控制台(右键单击 => 检查)并输入:btoa("string you want to encode")(或使用邮递员基本授权)


d
djm.im

根据上面的答案,它运作良好。

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

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