@や&などの特殊文字をcURL POST dataに含めるにはどうすればよいですか?次のような名前とパスワードを渡そうとしています。
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.mysite.com
エンティティコードの使用はどうですか...
@ = %40
& = %26
だから、あなたが持っているでしょう:
curl -d 'name=john&passwd=%4031%263*J' https://www.mysite.com
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<>/