如何通过 cURL 在 url 中传递 JSON



我想做如下事情:

curl localhost:8080/myapp/?params={"first_key":"I'm the first value","second_key":"the second value"}

当我尝试通过浏览器访问页面时,这是非常正常的,但它无法通过 cURL 工作。我做错了什么?

该问题是由 cURL 的"URL 通配解析器"引起的(请参阅文档):

您可以通过在大括号内编写部件集来指定多个 URL 或 URL 的一部分,如下所示:

http://{一,二,三}.com

因此,您的命令将扩展到:

curl localhost:8080/myapp/?params="first_key":"I'm the first value"
curl localhost:8080/myapp/?params="second_key":"the second value"

您需要使用 -g 选项(或--globoff):

此选项关闭"URL 通配解析器"。设置此选项时,可以指定包含字母 {}[] 的 URL,而无需由 curl 本身解释它们。

所以:

curl -g localhost:8080/myapp/?params={"first_key":"I'm the first value","second_key":"the second value"}

然后,要保留双引号,您需要将 URL 括在单引号中:

curl -g 'localhost:8080/myapp/?params={"first_key":"I'''m the first value","second_key":"the second value"}'

相关内容

  • 没有找到相关文章

最新更新