AWS / PHP / Python ちょいメモ

amazon web service , PHP, Python を使ったときのメモ。日本語でググってもわからなかった事を中心に。

curl コマンド利用TIPS ヘッダー変更、HTTPヘッダー取得など

curl って使える!と思った使い方のメモ。さっそくWindでも使うべく、Cygwinに追加インストール。

なんでも、よく目にするコマンドは、ちょいと使ってみないとですね。

複数パラメーターをもってる場合は "" で囲む
$ curl -X GET "http://hogehoge.hoge/api?param1=11111&param2=22222"

"" で囲まないとQuery内の & がシェルで解釈されてバックグラウンドプロセス化してしまいます。

HTTPレスポンスを見る -I, -v
  • -I : サーバーからのレスポンスヘッダーを表示。
    • Webサーバーの設定触ったときとか、これでみると早いですね。これまでブラウザやtelnetで見てましたが、一発です。
$ curl -I http://www.google.com/
HTTP/1.1 302 Found
Cache-Control: private
Content-Type: text/html; charset=UTF-8
Location: http://www.google.co.jp/?gfe_rd=cr&ei=Xv4RU8-gPITN8geX3IHgCQ
Content-Length: 261
Date: Sat, 01 Mar 2014 15:35:58 GMT
Server: GFE/2.0
Alternate-Protocol: 80:quic
  • -v : サーバーとのやりとり表示(リクエストヘッダーなどを含む)
    • DNSの解決からレスポンスされるHTMLまで、すべてがみれます
$ curl -v http://www.google.com/
* STATE: INIT => CONNECT handle 0x60002d400; line 1011 (connection #-5000)
* Hostname was NOT found in DNS cache
*   Trying 173.194.117.178...
・・・
<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>302 Moved</TITLE></HEAD><BODY>
・・・
カスタムヘッダーをつけてリクエスト -H, -A
  • H : 任意のヘッダー情報を付与
curl -H "Accept: application/json" -H "Content-Type: application/json" http://hostname/resource
  • A : ユーザーエージェントを変更
$ curl -i -A "custom" http://hostname/resource

参考

その他

curl = cURL なんですね。頭の中で別物になってました。対応プロトコルも、HTTPから始まり、FTP、SCP、SMTPなどなど、すごい懐の広さ。

libcurl というライブラリの形で提供されているので、PHPなどの言語からも利用可能との事。