ChatGPT解决这个技术问题 Extra ChatGPT

如何使用 cURL 执行 PUT 请求?

如何使用 cURL 测试 RESTful PUT(或 DELETE)方法?


t
theabraham

-X 标志与您想要的任何 HTTP 动词一起使用:

curl -X PUT -d arg=val -d arg2=val2 localhost:8080

此示例还使用 -d 标志为您的 PUT 请求提供参数。


-X 上的“man curl”:“通常你不需要这个选项。各种 GET、HEAD、POST 和 PUT 请求都是通过使用专用的命令行选项来调用的。”但我找不到其他方法。
一年后,我找到了办法!卷曲-T
正如 Martin C. Martin 的答案在从服务器重定向后也更改为 GET 在我看来这是更有用的答案。
要在重定向后实现 GET,请添加参数 --location
卷曲 7.47,这对我不起作用。 theabraham 的答案始终默认为发布行为。然而 --get (或 -G )将强制 -d (--data )字段成为 url 参数并且确实有效。
G
Giacomo1968

快速回答:

在一行中,curl 命令将是:

如果发送表单数据: curl -X PUT -H "Content-Type: multipart/form-data;" -F "key1=val1" "YOUR_URI" 如果以 json 格式发送原始数据: curl -X PUT -H "Content-Type: application/json" -d '{"key1":"value"}' "YOUR_URI" 如果发送带有 POST 请求的文件: curl -X POST "YOUR_URI" -F 'file=@/file-path.csv'

替代解决方案:

您可以使用 Chrome 商店中的 POSTMAN 应用程序来获取等效的 cURL 请求。这在编写更复杂的请求时特别有用。

对于其他格式的请求或针对 java、PHP 等不同客户端的请求,您可以查看下面的 POSTMAN/comment。

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


不知道为什么这被否决了...我在这里复制了如何将 JSON 正文传递给 curl PUT 的想法。 postman 也是一个非常棒的工具,可以为更复杂的查询获取 curl 代码:)
谢谢 !!即使我不知道为什么会反对。可能是用户不愿意采用它。我已经在 POSTMAN 中创建了我所有用于移动设备的 REST api 的响应,这是我可以向任何使用 REST 的人建议的最佳生产力提示。
我在端点传递 json 数据和参数的真实示例; curl -X PUT -H "Content-Type: application/json" -d '{"amount":"999","type":"car","parent_id":"12345"}' localhost:8080/transactionservice/transaction/2222
必须安装一个完整的浏览器(如果没有 Chrome)和一个扩展对于某些人来说可能是一种矫枉过正。至少您可以为另一个更常见的(默认安装)Web 浏览器(如 Firefox)提供替代方案,其中 HttpRequester 执行类似的工作。
它可能会被否决,因为问题是关于卷曲的。
T
Tor Klingberg

Martin C. Martin 评论后的 PUT 示例:

curl -T filename.txt http://www.example.com/dir/

使用 -T(与 --upload-file 相同)curl 将对 HTTP 使用 PUT。


不幸的是,如果您想用 -d-F 指定参数,-T 不能替代 -X PUT-T 通过 PUT 发送文件内容。要在重定向后实现 GET,请添加参数 --location
如果 filename.txt 在远程服务器中怎么办?
k
kalyani chaudhari
curl -X PUT -d 'new_value' URL_PATH/key

在哪里,

X - 用于请求命令的选项

- 用于将数据放在远程 url 上的选项

URL_PATH - 远程 URL

new_value - 我们要放入服务器密钥的值


s
sunitkatkar

我迟到了这个线程,但我也有类似的要求。由于我的脚本是动态构建 curl 的请求,因此我希望在 GET、POST 和 PUT 中使用类似的命令结构。

这对我有用

对于 PUT 请求:

curl --request PUT --url http://localhost:8080/put --header 'content-type: application/x-www-form-urlencoded' --data 'bar=baz&foo=foo1'

对于 POST 请求:

curl --request POST --url http://localhost:8080/post --header 'content-type: application/x-www-form-urlencoded' --data 'bar=baz&foo=foo1'

对于 GET 请求:

curl --request GET --url 'http://localhost:8080/get?foo=bar&foz=baz'