当前位置: 首页 > 知识库问答 >
问题:

使用来自字符串的url字符串时出现curl错误

米树
2023-03-14

我现在正在使用bash shell脚本测试一些restful API。我想从文件中读取url,然后用文件中的url创建一个json数据字符串。对于测试,下面的代码工作良好。它不是从文件读取的。

#!/bin/bash  
URL=http://test.com/test.jpg
curl -X POST \
-H "Content-Type:application/json" \
-H "accept:application/json" \
--data '{"url":"'"$URL"'"}' \
http://api.test.com/test
#!/bin/bash  
FILE=./url.txt
cat $FILE | while read line; do 
echo $line # or whaterver you want to do with the $line variable
curl -X POST \
-H "Content-Type:application/json" \
-H "accept:application/json" \
--data '{"url":"'"$line"'"}' \
http://api.test.com/test
done

非法的无引号字符((CTRL-CHAR,代码13)):必须使用反斜杠转义才能包含在[source:org.apache.catalina.connector.CoyoteInputStream@27eb679c;行:1,列:237]处的字符串值中

如何解决这个问题?为什么当我使用文件读取的字符串时,它返回错误?

共有1个答案

曹建华
2023-03-14

您的文件似乎是带有\n\r行终止符的dos格式。尝试在其上运行dos2unix以删除\r。此外,不需要cat文件,可以使用重定向,如下所示

while read -r line; do 
echo $line # or whaterver you want to do with the $line variable
curl -X POST \
-H "Content-Type:application/json" \
-H "accept:application/json" \
--data '{"url":"'"$line"'"}' \
http://api.test.com/test
done < "$FILE"

此外,将-r传递到read以防止反斜杠转义

 类似资料:
  • 问题内容: 为什么以下算法对我来说不停止?(str是我要搜索的字符串,findStr是我要寻找的字符串) 问题答案: 最后一行造成了问题。永远不会为-1,所以会有无限循环。可以通过将代码的最后一行移到if块中来解决此问题。

  • 问题内容: 我想基于我的字符串更改imageview src,我有这样的东西: 当然不行。如何以编程方式更改图像? 问题答案: 用: 注意:不要使用扩展名(例如,“。jpg”)。 示例:图像为“ abcd_36.jpg”

  • 问题内容: 单词示例:a,akkka,akokaa,kokoko,kakao,ooooooa,kkako,kakaoa 我需要正则表达式女巫给带有2个或更少的’a’的单词,而不给没有’a’的单词 结果:a,akka,kakao,ooooooa,kkako 好的,实际上我正在使用: 这将返回0行,其中有带有2位和3位的单词 问题答案: 更新以在两者之间使用。

  • 对性能是否有影响? 不同Java版本的行为是否有差异?

  • 我想从url字符串中提取子字符串。这是url: 我想开始从id中提取= 直到破折号(-),然后提取剩余的子字符串 请注意,确切的域不是上面的域,这只是一个示例。 有什么想法吗?我非常感谢你的帮助。谢谢 更新: 这就是我到目前为止所做的: 但它只是公开了/pi。

  • 问题内容: 如何计算特定字符串在另一个字符串中出现的次数。例如,这就是我要使用Javascript进行的操作: 问题答案: 在正则表达式(简称 全球 )说,搜索整个字符串,而不是只要找到第一次出现。这匹配两次: 并且,如果没有匹配项,则返回: