Curl命令行对HTTP PUT的查询参数进行编码
问题描述:
我有多个查询参数,我想使用curl在HTTP PUT操作中发送。如何编码查询参数?示例:Curl命令行对HTTP PUT的查询参数进行编码
$ curl -X PUT http://example.com/resource/1?param1=value%201¶m2=value2
如果'值1'包含由shell解释的空格或其他字符,则该命令将无法正确解析。
答
解决的方法是将-G
开关与--data-urlencode
开关组合使用。使用原始例如,命令将如下所示:
$ curl -X PUT -G 'http://example.com/resource/1' --data-urlencode 'param1=value 1' --data-urlencode param2=value2
的-G
开关使与--data-urlencode
开关编码的参数附加到具有?
分离器的HTTP URL的结尾。
在此示例中,param1
的值将编码为value%201
,其中%20是空格字符的编码值。
答
PUT请求实际上像POST请求一样工作。
您应该使用 $ curl -X PUT --data "param1=value1¶m2=value2" http://whatever
数据应该是x-www-form-urlencode
d。
编辑:虽然这是完全违背了标准的,我见过的实例,其中请求主体必须都必须被追加为作为表单数据传递查询字符串和。
LinkedIn API是最值得关注的。