我有多个查询参数,我想使用curl在HTTP PUT操作中发送.如何编码查询参数?例:
$curl -X PUT http://example.com/resource/1?param1=value%201¶m2=value2
如果’value 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的值将被编码为值1,其中是空格字符的编码值.