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」というファイルが新たに作成されるようで、やる度に最後の数字がインクリメントされたので、こちらは上書きや追記は行われないようです。