如何添加@和&等特殊字符?在cURL POST数据?我正在尝试传递名称和密码,如:
curl -d name=john passwd=@31&3*J https://www.mysite.com
这会导致问题,因为@
用于加载文件,&
用于指定多个键/值。有什么方法可以逃脱这些角色吗? \@
和\&
似乎无效。
答案 0 :(得分:54)
cURL> 7.18.0有一个选项--data-urlencode
来解决这个问题。使用它,我只需发送一个POST请求
curl -d name=john --data-urlencode passwd=@31&3*J https://www.mysite.com
答案 1 :(得分:32)
如何使用实体代码......
@ = %40
& = %26
所以,你会:
curl -d 'name=john&passwd=%4031%263*J' https://www.mysite.com
答案 2 :(得分:14)
双引号(“”)整个URL
。它有效。
curl "http://www.mysite.com?name=john&passwd=@31&3*J"
答案 3 :(得分:4)
刚发现另一种解决方案适合我。您可以使用' \'在你的特别之前签名。
passwd=\@31\&3*J
答案 4 :(得分:3)
试试这个:
export CURLNAME="john:@31&3*J"
curl -d -u "${CURLNAME}" https://www.example.com
答案 5 :(得分:2)
如果密码中有特殊字符,只需用单引号将密码四舍五入即可。
curl -u username:'this|!Pa&*12' --request POST https://www.example.com
答案 6 :(得分:0)
我做了这个
~]$ export A=g
~]$ export B=!
~]$ export C=nger
curl http://<>USERNAME<>1:$A$B$C@<>URL<>/<>PATH<>/