【问题标题】:cURL for Windows: how can I send multiple line command in a console?cURL for Windows:如何在控制台中发送多行命令?
【发布时间】:2014-08-24 17:12:14
【问题描述】:

我正在学习使用 cURL,我需要在控制台中运行它:

curl -XGET localhost:9200/library/book/_search?pretty=true -d {
    "query" : {
        "query_string" : { "query" : "title:crime" }
    }
}

但这是一个多行命令。如何处理它以发送完整的命令?

请注意,我知道我可以将 -d 之后的内容放在一个文件中以运行此命令。

【问题讨论】:

  • 是什么让您无法简单地删除换行符(因为它们只是格式化,对于它的实际内容根本不重要JSON数据结构)...?
  • “我知道我可以将 -d 后面的内容放在一个文件中来运行这个命令” – 引用 cURL 手册:“当--data 被告知从这样的文件中读取,回车符和换行符将被删除” ...所以在这种情况下你也不会将它们放在那里。
  • @CBroe,非常感谢您的参与。我是否应该将 JSON 结构放在一行中,例如 curl -XGET localhost:9200/library/book/_search?pretty=true -d {"query " : {"match_all" : {}} 或 curl -XGET localhost:9200/library/book/_search?pretty=true -d @{"query" : {"match_all" : {}} ?在第一种情况下出现错误,在第二种情况下出现警告。
  • 这能回答你的问题吗? Multiline curl command

标签: curl libcurl


【解决方案1】:

有时我必须使用 windows,试试这样的:

curl -XPOST http://localhost:9200/_search -d^
"{^
    \"query\": {^
        \"query_string\": {^
            \"query\": \"year:2003\"^
        }^
    }^
}"

^ 将命令扩展到下一行
\" 转义 " 在 json 上

【讨论】:

  • ^ 适用于我在添加标题项等时添加多行。
【解决方案2】:

为 Windows 安装 Git。使用 git bash 运行 curl 命令。

【讨论】:

  • 这很简单 - 它立即生效,并证明 url、apikey 和 json 都有效并返回了正确的答案。然后我可以专注于 Windows 格式的差异。
【解决方案3】:

到目前为止,我还没有找到任何方法可以在 Windows 上使用 curl 发送跨越多个的命令。但是,我能够找到完成任务的方法。以下是我将如何重写您尝试实现的命令

curl -XGET localhost:9200/library/book/_search?pretty=true -d "{ \"query\" : { \"query_string\" : { \"query\" : \"title:crime\" }  } }"

只需确保 /library/book/ 是正确的索引名称。

如果你能成功,希望能收到回复

【讨论】:

    猜你喜欢
    • 2011-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-03
    • 1970-01-01
    • 1970-01-01
    • 2013-06-19
    相关资源
    最近更新 更多