【curl】パラメータをPOSTして、その結果をファイル出力する

コマンド

curl -o output.txt -w "ステータスコード:%%{http_code}\r\n" -X POST -F "param1=aaaa" -F "param2=bbbb" http://localhost/hoge

コマンド実行結果

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  6691  100  6333  100   358   6333    358  0:00:01 --:--:--  0:00:01 30552
ステータスコード:200

あと、-oで指定したファイルがカレントディレクトリに出力される。

 

補足

  • 「-w “ステータスコード:%%{http_code}\r\n”」は記載しなくても大丈夫です。省略すると、実行結果の「ステータスコード:200」の部分は表示されない。
  • 実行結果のCurrentSpeedなどの情報が不要であれば「-s」を付ければ、非表示になる。

【curl】【Windows】統合Windows認証しながら、POSTパラメータとファイルをアップロードする

curl.exe --ntlm --user userId:password --connect-timeout 30 --max-time 10800 -XPOST -F "uploadFile=@C:tempdummyFile.txt" -F "ParameterPost=hoge" "https://localhost/app?ParameterGet=hogehoge"
  • 統合Windows認証のためのユーザーIDとPWを指定
    • –ntlm –user userId:password
  • 接続タイムアウトを30秒
    • –connect-timeout 30
  • 最大処理時間を3時間(60秒*60分*3時間)
    • –max-time 10800
  • アップロードファイルを指定
    • -XPOST -F “uploadFile=@C:tempdummyFile.txt”
  • POSTパラメータを指定
    • -F “ParameterPost=hoge”
  • URLを指定(GET含む)
    • “https://localhost/app?ParameterGet=hogehoge”

 

【curl】【Windows bat】内部コマンドまたは外部コマンド~として認識されていません。エラーになる

curl https://juraku-software.net/?hoge=aaa&hoge2=bbb

として実行すると、

‘hoge2’ は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

となる。
(文字化け防止のため、コンソールの文字コードをchcp 65001で変更してから実行すると、
‘hoge2’ is not recognized as an internal or external command,
operable program or batch file.
になる)

この場合は、

curl "https://juraku-software.net/?hoge=aaa&hoge2=bbb"

のように”でURLを囲んであげれば、OK!

&は別のコマンドを指定するときに利用するため、hoge2というプログラムが存在しないということになる。

単純なミスだった・・・