如何在 cURL POST 数据中包含 @ 和 & 等特殊字符?我正在尝试传递名称和密码,例如:
curl -d name=john passwd=@31&3*J https://www.mysite.com
这会导致问题,因为 @
用于加载文件,而 &
用于指定多个键/值。有什么办法可以逃避这些角色吗? \@
和 \&
似乎不起作用。
最佳答案
cURL > 7.18.0 有一个选项 --data-urlencode
这解决了这个问题。使用这个,我可以简单地发送一个 POST 请求
curl -d name=john --data-urlencode passwd=@31&3*J https://www.example.com
总结一下评论,如果里面有“好”和“坏”的数据以及感叹号,我们可以在 Windows 上使用:
curl -d "grant_type=client_credentials&client_id=super-client&acr_values=tenant:TNT123" --data-urlencode "client_secret=XxYyZ21D8E&%fhB6kq^mXQDovSZ%Q*!ipINme" https://login.example.com/connect/token
关于post - cURL POST 数据中的特殊字符,如 @ 和 &,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10060093/