首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >bash:执行curl请求时出错

bash:执行curl请求时出错
EN

Stack Overflow用户
提问于 2022-11-02 10:23:59
回答 1查看 65关注 0票数 -1

我正在尝试执行bash脚本,但我得到了以下错误:

代码语言:javascript
运行
复制
curl: (3) URL using bad/illegal format or missing URL
curl: (3) unmatched close brace/bracket in URL position 1

我尝试过几种方法,比如在json中转义“in json”,在curl请求中使用-g,在Req变量周围使用,而不是使用eval,但是我无法修复这个问题。

代码语言:javascript
运行
复制
   #!/bin/bash
filename="$1"
URL='http://localhost:8983/contentCleaner?action=clean'
while read -r requestParam; do
   Req="curl ${URL} -X POST -H 'Accept:application/json' -H 'Content-Type:application/json' --data \"$requestParam\""
    Res=eval $Req
    echo "Res:$Res"
done < "$filename"

我作为param传递给bash命令的文件包含一个json数据列表,该列表由新行分隔。bash脚本遍历json并填充curl请求。下面是一个请求的示例:

代码语言:javascript
运行
复制
{ \"batchRequest\": { \"requests\": [ { \"contentData\": { \"contentText\": { \"ingestedContentSummary\": { \"provider\": { \"url\": \"twitter.com\" }, \"title\": \"Trump\" } } }, \"contentSource\": \"twitter\", } ] } }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-02 11:48:08

不要(尝试)将shell命令放入(标量)变量中。只适用于最简单的情况,而且您的情况并不简单。我们以前有很多关于这个问题的Q,但不幸的是,它们很难找到。相反,作为参考,请参阅https://mywiki.wooledge.org/BashFAQ/050

对于您的情况,只需执行正确的命令:

代码语言:javascript
运行
复制
while read -r requestParam; do
   Res=$( curl ${URL} -H 'Accept:application/json' -H 'Content-Type:application/json' --data "$requestParam" ) # -X POST 
    echo "Res:$Res"
done < $filename

您不需要-X POST,因为所有--data*选项都会自动设置它。此外,<$var (和>$var >>$var <<$var <<<$var)不受单词拆分和全局化的限制,因此不需要双引用。(与此相反,命令参数所做的"$requestParam"是这样的。)

或者,由于您对结果所做的唯一事情是使用前缀输出结果,所以可以简化为

代码语言:javascript
运行
复制
while read -r requestParam; do
   curl ${URL} -H 'Accept:application/json' -H 'Content-Type:application/json' --data "$requestParam" | sed 's/^/Res:/'
done <$filename

如果每个主体都有一个换行符(如您的输入文件),那么

代码语言:javascript
运行
复制
xargs <$filename -I{} curl $URL -H... -H... --data {} | sed 's/^/Res:/'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74287663

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档