機能 ショートカットキー
リファレンス(参考URL)一覧へ移動 R
記事URLをMarkDownとしてコピー Ctrl+M
前のコードタグへ移動 Ctrl+←
次のコードタグへ移動 Ctrl+→
ヘルプを表示・非表示 H
Tips
- ショートカットキーは記事上で有効です。ヘッダー/フッター付近では機能しないことがあります。
- コードタグ移動機能がうまく動かないときは、Shift+F5でページを更新してみてください。
- このウィンドウを閉じるには、Hキーをもう一度押してください

curlでデータをHTTP POSTする方法とアンパサンド(&)のエスケープについて

プログラミング

curlのフォームデータのPOSTには、2つのオプションが使用できます。

fとdです。
これの違いは、fは一つのキーしか送れませんが、dは複数のパラメータを送ることができます。

curl https://yuis.xsrv.jp/pg/dev/ -X POST -f 'html=hogehogehoge' #=> Ok
curl https://yuis.xsrv.jp/pg/dev/ -X POST -f 'html=hogehogehoge&fuga=fugafuga' #=> Error
curl https://yuis.xsrv.jp/pg/dev/ -X POST -d 'html=hogehogehoge' #=> Ok
curl https://yuis.xsrv.jp/pg/dev/ -X POST -d 'html=hogehogehoge&fuga=fugafuga' #=> Ok

また、”&”をデータの中に含んでいると、&以降が別のキーだと認識されるため、エスケープの必要があります。

curl https://yuis.xsrv.jp/pg/dev/ -X POST -d 'html=hogehogehoge&fugafugafuga'

こうするればエスケープと同時にcurlすることができます。

curl https://yuis.xsrv.jp/pg/dev/ -X POST --data-urlencode 'html=hogehogehoge&fugafugafuga'

複数パラメーターを指定したい場合はオプションを複数指定します。

curl https://yuis.xsrv.jp/pg/dev/ -X POST --data-urlencode 'html=hogehogehoge&fugafugafuga'  --data-urlencode 'hoge=hoge'

もしくは、こちらのスクリプトを使用します。
Bash urlencode and urldecode

urlencode 'hogehogehoge&fugafugafuga'
hogehogehoge%26fugafugafuga

curl https://yuis.xsrv.jp/pg/dev/ -X POST -d 'html=hogehogehoge%26fugafugafuga'

この記事で欲しい情報が見つからなかった方へ

この記事の更新情報がある場合があります。
この記事は以下の記事とも関連性があると思われます。

Bashで!(エクスクラメーション)をエスケープするには
JavaScriptでURLエスケープ
curlでプロキシサーバーを経由する
PHPでHTTP POSTリクエストを受け取る


管理人の方針で、既存の記事の編集はせず、新しい情報や大きな既存情報の更新があった場合には、新しい記事として公開することになっています。
当記事で欲しい情報が見つからなかった・解決に至らなかった場合、これらのリンクがお役に立てるかも知れません。

どうやってこの関連記事を生成しているの?
この機能のPHPソースコード(2500行)

コメントを残す

Close Menu