web-services - HTTP PUT 的查询参数的 curl 命令行编码

标签 web-services rest http unix curl

我有多个查询参数,我想使用 curl 在 HTTP PUT 操作中发送这些参数。如何对查询参数进行编码?示例:

$ curl -X PUT http://example.com/resource/1?param1=value%201&param2=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 开关编码的参​​数附加到带有 ? 分隔符。

在示例中,param1 的值将被编码为 value%201,其中 %20 是空格字符的编码值。

关于web-services - HTTP PUT 的查询参数的 curl 命令行编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32980081/

相关文章:

web-services - Drupal 服务端点返回 404 : Could not find resource retrieve

php - 将 SOAP XML 响应转换为 PHP 对象或数组

java - 如何捕获 "Unable to sendViaPost to url"?

PHP 获取 JSON POST 数据

c - 使用 C 语言制作具有 native 脚本支持的 Web 服务器

java - CertPathBuilderException : unable to find valid certification path was 8. 5 网络部署

algorithm - 在哈希中包含时间戳,但如何比较哈希?

java - 鉴于我已经在我的 webapp 中使用了 Spring 框架,我应该使用改造 rest 客户端吗

rest - 如何使用 REST API 管理 Presto 查询 session 变量?

http - Wireshark 如何将 TCP 数据包的协议(protocol)识别为 HTTP?