【问题标题】:How to pass a JSON in url via cURL?如何通过 cURL 在 url 中传递 JSON?
【发布时间】:2014-02-20 12:16:17
【问题描述】:

我想做如下的事情:

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

当我尝试通过浏览器访问页面时,这很正常,但它不能通过 cURL 工作。我究竟做错了什么?

【问题讨论】:

    标签: json curl get curl-commandline


    【解决方案1】:

    这个问题是由 cURL 的“URL globbing parser”引起的(参见docs):

    您可以通过在大括号内编写部分集来指定多个 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 globbing parser”。当您设置此选项时,您可以指定包含字母 {}[] 的 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"}'
    

    【讨论】:

      猜你喜欢
      • 2014-02-11
      • 2015-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-12
      相关资源
      最近更新 更多