2020.7.16

wgetでPOSTリクエスト

LinuxのサーバからHTTPリクエストでデータを送信(POST)したいことがあり、wgetで実装したので、使い方をメモとして残しておきます。

目次

  • コード
  • 実行時のログとダウンロードしたデータ
  • 参考リンク

コード

コードの例は以下の通り。


wget --directory-prefix=/var/example/data/ --append-output=/var/example/wget.log --post-data="name=hoge&message=fuga" https://***.com/saveMessage
--directory-prefix ダウンロードしたデータを保存するディレクトリ(デフォルトはカレントディレクトリ)
--append-output 実行時のログや処理結果を出力するファイルの指定(ファイルが存在する場合、追記で書き込まれる)
--post-data 送信するデータ
https://***.com/saveMessage リクエストを送信するURL

実行時のログとダウンロードしたデータ

上記のコマンドを実行すると、指定したファイル(/var/example/wget.log)に以下のようなログが出力されます。


--2020-07-15 12:30:01--  https://***.com/saveMessage
Resolving ***.com (***.com)... xxx.xxx.xxx.xxx, xxxx:xxxx:xxxx:xxxx:xxxx:xxxx
Connecting to ***.com (***.com)|xxx.xxx.xxx.xxx|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 7 [text/html]
Saving to: ‘/var/example/data/saveMessage’

     0K                                                       100%  232K=0s

2020-07-15 12:30:07 (232 KB/s) - ‘/var/example/data/saveMessage’ saved [7/7]

ファイルが存在する状態で再度実行すると、実行するたび、下に追記されていきます。

また、ダウンロードしたデータとして、指定したディレクトリ(/var/example/data/)配下に「saveMessage」というファイルが出来て、処理成功時にレスポンスで返していた「success」という文字が出力されていました。

複数回実行した場合に「saveMessage」というファイルがすでに存在していたら、「saveMessage.1」というファイルが新たに作成されるようで、やる度に最後の数字がインクリメントされたので、こちらは上書きや追記は行われないようです。

参考リンク

その他】関連記事