cURL 配置文件 (-k / --config) JSON 换行符

Posted

技术标签:

【中文标题】cURL 配置文件 (-k / --config) JSON 换行符【英文标题】:cURL config file (-k / --config) JSON newlines 【发布时间】:2018-11-15 12:47:15 【问题描述】:

我正在尝试构建一个 cURL 配置文件,该文件在 -d/--data 正文中包含换行符,但它似乎与在命令行中的工作方式不同。

在命令行我可以运行:

curl -XPUT 'http://localhost:9200/mytype/_search' -d '
  "query": 
    "match_all": 
  
'

并且数据主体被正确传递。

但是,如果我尝试在 curl -K/--config 文件中执行此操作,它将不起作用。

test.curl:

-XPUT
-d '
  "query": 
    "match_all": 
  
'

然后运行curl -K test.curl 'http://localhost:9200/mytype/_search,我提交数据的端点解析失败。如果我将所有数据放在一行上并使用双引号,我可以让它工作,但这会破坏我正在寻找的一些易读性。

test2.curl 有效

-XPUT
-d "\"query\": \"match_all\":   "

我也尝试过复制这个heredoc 答案:How to send line break with curl?,但它在--config 文件中也不起作用

【问题讨论】:

【参考方案1】:

你可以用data-binary = "@requestbody.json"代替-d "\"query\": \"match_all\": "

然后在requestbody.json中:


  "query": 
    "match_all": 
  

【讨论】:

以上是关于cURL 配置文件 (-k / --config) JSON 换行符的主要内容,如果未能解决你的问题,请参考以下文章

无法解析代理:POST(在运行 curl 脚本进行 watson 文档转换时)

删除 ~/.kube/config

laravel-阿里大于

curl和curl-config中的libcurl不匹配。

通过curl向nacos上传配置文件

cURL 配置文件 (-k / --config) JSON 换行符