post - cURL POST 数据中的特殊字符,如 @ 和 &

标签 post curl

如何在 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/

相关文章:

json - 如何使用 JSON 参数 curl 帖子?

jQuery AJAX 通过跨域发布到 https web api 操作

curl - OS X 与 curl SSL 战斗 - 证书错误

php - 如何使用php获取url中的元标记

curl - 有没有办法让curl 解压缩响应而不在请求中发送Accept header ?

使用 wget 下载的图像大小为 4 个字节

http - Flickr API iOS 应用程序 "POST size too large!"

php - 如何从帖子中获取数据到类(class)

php - 在没有输入标签的情况下在 Post 中发送变量

php - 使用 cURL 处理字节范围请求