如何在cURL POST数据中包含@和&之类的特殊字符? 我正在尝试传递一个名称和密码,例如:
curl -d name=john passwd=@31&3*J https://www.mysite.com
这将导致问题,因为@用于加载文件,&用于指定多个键/值。 有什么办法可以逃脱这些角色? \@和\&似乎不起作用。
@
&
\@
\&
cURL> 7.18.0具有选项--data-urlencode,它可以解决此问题。 使用这个,我可以简单地发送一个POST请求作为
--data-urlencode
curl -d name=john --data-urlencode passwd=@31&3*J https://www.mysite.com
如何使用实体代码...
curl -d 'name=john&passwd=%4031%263*J' https://www.mysite.com
因此,您将拥有:
将整个URL都用双引号(“”)起作用。
URL
curl "http://www.mysite.com?name=john&passwd=@31&3*J"
刚刚发现另一种解决方案对我有用。 您可以在特殊字符前使用'\'号。
passwd=\@31\&3*J
尝试这个:
export CURLNAME="john:@31&3*J" curl -d -u "${CURLNAME}" https://www.example.com
我做了这个
~]$ export A=g ~]$ export B=! ~]$ export C=nger curl http://<>USERNAME<>1:$A$B$C@<>URL<>/<>PATH<>/