把带有方括号的URL传递给curl
把带有方括号的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日
Globbing使用括号,因此需要用斜杠\
转义它们。或者,以下命令行开关将禁用globbing:
--globoff
(或短选项版本:-g
)
例如:
curl --globoff https://www.google.com?test[]=1
添加-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/{[]}}}}"