cURL POST データに @ や & などの特殊文字を含めるにはどうすればよいでしょうか? 次のように名前とパスワードを渡そうとしています:
curl -d name=john passwd=@31&3*J https://www.mysite.com
@
これは、ファイルの読み込みや&
複数のキー/値の指定に使用されるため、問題が発生します。これらの文字をエスケープする方法はありますか?動作しないようです\@
。\&
ベストアンサー1
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