如何用curl做PUT请求?

Joh*_*ohn 381 rest curl http

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

the*_*ham 534

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

curl -X PUT -d arg=val -d arg2=val2 localhost:8080
Run Code Online (Sandbox Code Playgroud)

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

  • 一年后,我找到了办法!卷曲-T (42认同)
  • "man curl"on -X:"通常你不需要这个选项.使用专用的命令行选项可以调用各种GET,HEAD,POST和PUT请求." 但我找不到另一种方式. (16认同)
  • 从服务器重定向后,由于Martin C. Martin的答案也更改为GET,因此我认为这是更有用的答案。 (2认同)
  • 要在重定向后实现“ GET”,请添加参数“ --location” (2认同)

Pra*_*eek 89

您可以使用Chrome Store中的POSTMAN应用.

在一行中,curl命令将是:

a)如果发送表格数据:

curl -X PUT -H "Content-Type: multipart/form-data;" -F "key1=val1" "YOUR_URI"
Run Code Online (Sandbox Code Playgroud)

b)如果以json发送原始数据:

curl -X PUT -H "Content-Type: application/json" -d '{"key1":"value"}' "YOUR_URI"
Run Code Online (Sandbox Code Playgroud)

c)如果发送带有POST请求的文件:

curl -X POST "YOUR_URI" -F 'file=@/file-path.csv'
Run Code Online (Sandbox Code Playgroud)

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

POSTMAN获取请求代码

  • 没有理由为什么这应该被投票. (6认同)
  • 不知道为什么这个被downvoted ...我在这里复制了如何为curl PUT传递JSON主体的想法.postman也是非常棒的工具,可以为更复杂的查询获取curl代码:) (4认同)
  • 它可能被低估了,因为问题是关于卷曲. (4认同)
  • 谢谢 !!甚至我也不知道为什么关于这个问题.用户可能不愿意采用它.我在POSTMAN中为移动设备创建了所有REST api的respo,这是我向任何使用REST的人建议的最佳生产力提示. (2认同)

Tor*_*erg 28

以马丁C.马丁评论为例的PUT示例:

curl -T filename.txt http://www.example.com/dir/
Run Code Online (Sandbox Code Playgroud)

-T(相同--upload-file)curl将使用PUT进行HTTP.

  • 不幸的是,如果要使用`-d`或`-F`指定参数,`-T`不能替代`-X PUT`.`-T`通过PUT发送文件的内容.要在重定向后实现`GET`,请添加参数`--location` (8认同)

kal*_*ari 7

curl -X PUT -d 'new_value' URL_PATH/key
Run Code Online (Sandbox Code Playgroud)

哪里,

X - 用于请求命令的选项

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

URL_PATH - 远程网址

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


sun*_*kar 7

我迟到了这个线程,但我也有类似的要求。由于我的脚本正在动态构建 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'
Run Code Online (Sandbox Code Playgroud)

对于POST请求:

curl --request POST --url http://localhost:8080/post --header 'content-type: application/x-www-form-urlencoded' --data 'bar=baz&foo=foo1'
Run Code Online (Sandbox Code Playgroud)

对于GET请求:

curl --request GET --url 'http://localhost:8080/get?foo=bar&foz=baz'
Run Code Online (Sandbox Code Playgroud)