インターネット経由でデータを取得する「curl」(その4)

【連載】

にわか管理者のためのLinux運用入門

【第80回】インターネット経由でデータを取得する「curl」(その4)

[2017/06/27 12:40]後藤大地 ブックマーク ブックマーク

サーバ/ストレージ

今回までで、curlコマンドの解説はひとまず終わろうと思う。最後に、curlを使ってHTTP/HTTPSのPOSTメソッドを利用する例を紹介しよう。

POSTを利用する

HTTP/HTTPSではGETメソッドが使われることが多く、URLにデータを含ませておけばデータを取得できる。一方、ある程度以上の量のデータをアップロードするような用途ではPOSTメソッドが使われる。POSTメソッドでやり取りするデータはURLに含めることができないので、決められた形式に従ってサーバとやり取りしなければならない。そのため、URLを指定してページを取得するようなコマンドでは、GETメソッドは扱えるが、POSTメソッドは扱えないというケースがある。

だが、そうした場合にもcurlコマンドならば対応できるのだ。ここでは例として、日本郵便の公式サイトにある郵便番号検索を取り上げよう。

日本郵便の公式サイトにある郵便番号検索

郵便番号検索機能の動作を調べてみると、次のようにリクエストメソッドにPOSTを使っていることがわかる。

リクエストメソッドにPOSTを使っていることがわかる

特に重要な部分を抜き出すと、次のようになる。

  • URL:http://www.post.japanpost.jp/cgi-zip/zipcode.php
  • メソッド:POST
  • フォームデータ:pref=,addr=千代田区一ツ橋,x=0,y=0

curlコマンドを使うと、こうしたPOSTメソッドを次のように1行で実行できる。

curl -XPOST --data 'pref=&addr=千代田区一ツ橋&x=0&y=0' http://www.post.japanpost.jp/cgi-zip/zipcode.php

「-XPOST」がPOSTリクエストを指定するというオプション、「—data」がデータを指定するオプションだ。「—data」で指定するデータは、「application/x-www-form-urlencoded」として処理されるので、その形式で記述しておく。GETで指定するようなものだと考えておいてもらえればよいだろう。

必要に応じて「—data」ではなく「—data-raw」「—data-binary」「—data-urlencode」などを使ったり、「—form」や「—form-string」を使ったりすることもある。この辺りは、実際に必要になったときにマニュアルを参照すればよいと思う。

curlコマンドを実行して得られる結果を調べてみると、次のようにWebブラウザで検索を実行した際と同じデータが得られることがおわかりいただけるはずだ。

curlコマンドを実行して取得したHTMLコンテンツ

このように、curlを使うと、Webブラウザで操作していた内容をコマンドだけで処理できるようになる。強力かつ扱いやすいので、ぜひ使いこなしていただきたい。

※ 本記事は掲載時点の情報であり、最新のものとは異なる場合がございます。予めご了承ください。

関連リンク

この記事に興味を持ったら"いいね!"を Click
Facebook で IT Search+ の人気記事をお届けします
2872
2
【連載】にわか管理者のためのLinux運用入門 [80] インターネット経由でデータを取得する「curl」(その4)
今回までで、curlコマンドの解説はひとまず終わろうと思う。最後に、curlを使ってHTTP/HTTPSのPOSTメソッドを利用する例を紹介しよう。
https://news.mynavi.jp/itsearch/2017/06/27/Linux80_thumb.jpg
今回までで、curlコマンドの解説はひとまず終わろうと思う。最後に、curlを使ってHTTP/HTTPSのPOSTメソッドを利用する例を紹介しよう。

会員登録(無料)

一覧はこちら

今注目のIT用語の意味を事典でチェック!

一覧はこちら

ページの先頭に戻る