Linux curl,https get 地址里有特殊字符怎么办
Linux curl,https get 地址里有特殊字符怎么处理
我想用https取192.168.1.23上的一个名为 \~_!@$^&*.xml 的文件,我用下面的方法取不到,请问下大神们,这样有特殊字符的文件要怎么取?
curl --data-urlencode "\\~\_\!\@\$\^\&\*.xml" --cacert /var/ca-pem/ca-bundle-for-cdn.pem --digest https://192.168.1.23:443/bmsc/\\\~\_\!\@\$\^\&\*.xml
Warning: Couldn't read data from file "\~\_\!\@$\^\&\*.xml", this makes an
Warning: empty POST.
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.<br />
</p>
</body></html>
------解决思路----------------------
先试试非特殊字符是否OK;如果OK,那应该就是url encode的问题了。
------解决思路----------------------
建议最后的URL用引号引起来:
https://192.168.1.23:443/bmsc/\\\~\_\!\@\$\^\&\*.xml
------解决思路----------------------
注意中英文,最好用单引号,双引号的话Shell还是会解析的。
------解决思路----------------------
如果没有其它问题,请点击左上角“结帖”按钮。
我想用https取192.168.1.23上的一个名为 \~_!@$^&*.xml 的文件,我用下面的方法取不到,请问下大神们,这样有特殊字符的文件要怎么取?
curl --data-urlencode "\\~\_\!\@\$\^\&\*.xml" --cacert /var/ca-pem/ca-bundle-for-cdn.pem --digest https://192.168.1.23:443/bmsc/\\\~\_\!\@\$\^\&\*.xml
Warning: Couldn't read data from file "\~\_\!\@$\^\&\*.xml", this makes an
Warning: empty POST.
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.<br />
</p>
</body></html>
------解决思路----------------------
先试试非特殊字符是否OK;如果OK,那应该就是url encode的问题了。
------解决思路----------------------
建议最后的URL用引号引起来:
https://192.168.1.23:443/bmsc/\\\~\_\!\@\$\^\&\*.xml
------解决思路----------------------
注意中英文,最好用单引号,双引号的话Shell还是会解析的。
------解决思路----------------------
如果没有其它问题,请点击左上角“结帖”按钮。