如何使用 cURL 发送一个 PUT 请求?

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

617464 次浏览

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

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

本例还使用-d标志为PUT请求提供参数。

下面是Martin C. Martin评论的PUT示例:

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

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

快速回答:

在一行中,curl命令是:

  1. 如果发送表单数据:

    curl -X PUT -H "Content-Type: multipart/form-data;" -F "key1=val1" "YOUR_URI"
    
  2. 如果将原始数据作为json发送:

    curl -X PUT -H "Content-Type: application/json" -d '{"key1":"value"}' "YOUR_URI"
    
  3. 如果发送一个带有POST请求的文件:

    curl -X POST "YOUR_URI" -F 'file=@/file-path.csv'
    

可选择的解决方案:

你可以使用Chrome商店中的POSTMAN .应用程序来获得等效的cURL请求。这在编写更复杂的请求时尤其有用。

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

POSTMAN to get request code

curl -X PUT -d 'new_value' URL_PATH/key

在那里,

用于请求命令的X选项

选项,用于将数据放在远程url

URL_PATH远端url

New_value—我们要放入服务器键的值

我写这篇文章晚了,但我也有类似的要求。由于我的脚本是动态地构造curl请求的,所以我想在GET、POST和PUT之间使用类似的命令结构。

以下是对我有效的方法

对于请求:

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

对于帖子请求:

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

对于得到请求:

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