把带有方括号的URL传递给curl

9 浏览
0 Comments

把带有方括号的URL传递给curl

如果我尝试将带有括号的URL传递给curl,它会出现错误:

$ curl 'http://www.google.com/?TEST[]=1'
curl: (3) [globbing] illegal character in range specification at pos 29

然而,如果我转义两个括号,它似乎可以工作:

$ curl 'http://www.google.com/?TEST\[\]=1'

我该怎么解决这个问题?是否有一个自动转义URL的参数,或者一个在传递给curl之前需要转义的字符的描述?

admin 更改状态以发布 2023年5月19日
0
0 Comments

Globbing使用括号,因此需要用斜杠\转义它们。或者,以下命令行开关将禁用globbing:

--globoff(或短选项版本:-g

例如:

curl --globoff https://www.google.com?test[]=1

0
0 Comments

添加-g到您的命令中:

-g, --globoff
      This option switches off the "URL globbing parser". When you set this option, you can
      specify URLs that contain the letters {}[] without having curl itself interpret them.
      Note that these letters are not normal legal URL contents but they should be encoded
      according to the URI standard.
      Example:
       curl -g "https://example.com/{[]}}}}"

curl.se/docs/manpage.html#-g

0