ChatGPT解决这个技术问题 Extra ChatGPT

如何使用 curl 发布原始身体数据?

在您将此作为副本发布之前;我已经尝试了许多我在 SO 周围找到的建议。

到目前为止,我一直在使用邮递员将数据发布到 Java Web 服务。这很好用,如下所示:

https://i.stack.imgur.com/voBZy.png

我现在想用 curl 做同样的事情,所以我尝试了以下方式:

$ curl -X POST --data "this is raw data" http://78.41.xx.xx:7778/
$ curl -X POST --data-binary "this is raw data" http://78.41.xx.xx:7778/
$ curl -X POST --data "@/home/kramer65/afile.txt" http://78.41.xx.xx:7778/
$ curl -X POST --data-binary "@/home/kramer65/afile.txt" http://78.41.xx.xx:7778/

不幸的是,所有这些都在接收端显示一个空的原始身体。

有人知道我在这里做错了什么吗?我的 curl 请求与我的邮递员请求有何不同?欢迎所有提示!


E
ErrCode

curl 的 --data 默认会在请求标头中发送 Content-Type: application/x-www-form-urlencoded。但是,当使用 Postman 的 raw 正文模式时,Postman 在请求标头中发送 Content-Type: text/plain

因此,要实现与 Postman 相同的功能,请为 curl 指定 -H "Content-Type: text/plain"

curl -X POST -H "Content-Type: text/plain" --data "this is raw data" http://78.41.xx.xx:7778/

请注意,如果您想观看 Postman 发送的完整请求,您可以启用打包应用程序的调试。查看 this link 了解所有说明。然后您可以检查应用程序(在 Postman 中单击鼠标右键)并在 network 选项卡中查看从 Postman 发送的所有请求:

https://i.stack.imgur.com/k7qDN.png


应该注意的是,正文部分是完全相同的。这只是改变了一个标题。