Google Chrome Dev Toolsでキャプチャされたcurlリクエストを変更しようとしています。
コマンドは次のようになります
curl "http://WEBSITE" -H "Host: WEBSITE" -H "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" -H "Accept-Language: en-US,en;q=0.5" --compressed -H "Content-Type: multipart/form-data; boundary=---------------------------1184875127259" --data-binary "-----------------------------1184875127259"^
"Content-Disposition: form-data; name=""FORM1"""^
"FORM1DATA"^
"-----------------------------1184875127259"^
"Content-Disposition: form-data; name=""FORM2"""^
"FORM2DATA"^
"-----------------------------1184875127259"^
"Content-Disposition: form-data; name=""FORM3"""^
"FORM3DATA"^
"-----------------------------1184875127259"^
"Content-Disposition: form-data; name=""embed"""^
"true"^
"---------------------------1184875127259--"^
""
Form#
はフォームの名前であり、Form#Data
は、フォームで送信したデータです。
これを単一行のカールリクエストにするにはどうすればよいですか?コマンドラインにコピーして、ブラウザーと同じことを実行できますか?
使用 \
複数行入力のエスケープ文字
curl "http://WEBSITE" -H "Host: WEBSITE"\
-H "Accept: text/html,application/xhtml+xml\
,application/xml;q=0.9,*/*;q=0.8"
注:スペースを埋め込み、curlコマンドを台無しにするため、複数の行コマンドでインデントする傾向に注意してください。 sedコマンドは、変数内の埋め込みスペースを%20文字列に置き換えます。これにより、変数として渡す文字列にスペースを埋め込むことができます。
messageout="The rain in Spain stays mainly in the plains"
summaryout="This is a test record"
alertnameout="Test Alert"
curl -v -silent request POST "URL.com?\
summary=`echo $summaryout | sed -e 's/ /%20/g'`&\
alertname=`echo $alertnameout | sed -e 's/ /%20/g'`&\
message=`echo $messageout | sed -e 's/ /%20/g'`"