おしりんブログ

新人PGおしりんの色々まとめるよブログ

curlとcURL

って別物だと思ってたよ~

「同じ名前のツール作るなよ!検索対象に入ってきちゃうじゃんか!」
とか思ってたよ~。こりゃ失敬。


今日は月曜からお世話になってるcURLについてまとめるよ。


cURLとは
 さまざまなプロトコルを用いてデータを転送するライブラリ「libcurl」と
 コマンドラインツールcurlを提供するプロジェクトである。

cURLってプロジェクトそのもの名前でもあったのか。


・インストールする時に気をつけること
 →(URL)http://curl.haxx.se/download.html

 HTTPSのスキームをサポートしているものとそうでないものがあるので、
 用途を考えてどちらをインストールするか判断する。
 
 HTTPSサポートバージョンを利用したい場合は、
 別途SSLサーバ証明書が必要。
 
 
 手順は以下参照
 1. Download the SSL-aware version of Curl, or build the SSL-aware version yourself.
 2. From http://curl.haxx.se/docs/caextract.html ,Download the cacert.pem file.
 3. Place the curl.exe and the .pem file in the same directory.
 4. Rename the acert.pemc file to curl-ca-bundle.crt
 5. Re-run curl.exe !
 
 cacert.pemていうファイルを落としてきて、
 名前をcurl-ca-bundle.crtに変えて、curl.exeと同じディレクトリに置けばOK!

 Mac OSでは標準でcurlが装備されてるらしいけど、
 もともとHTTPSサポートバージョンが入ってるのかな?


・コマンド
 コマンドは色んなサイトで紹介されていたけど、「これ知りたいねん!」って
 コマンドやら記法がなかなか色んなサイトに分散してたからちょっとまとめる。
 

 -H [リクエストヘッダ]
 →-H "Content-type=application/json"(key=value)
 サーバに送信する HTTP リクエストに含ませる追加のヘッダを指定する。
 追加のヘッダはいくつでも指定することができる。
 
 値を持たないカスタムヘッダを送信する場合、
 そのヘッダはセミコロンで終端していなければならない。
 例 -H "title:" を送信するときは -H "title;"と記述する。
 
 
 -d, --data [リクエストボディ]
 →-d "{"title":"shiorin"}"
 指定したデータを POST リクエストとして HTTP サーバに送信する。
 送信はユーザが HTML フォームで入力して
 送信ボタンを押したときのブラウザのふるまいを模倣する。
 バイナリデータを送信する際は--data-binaryを使用する。
 
 ちなみにjsonデータを送信する時、Windowsユーザは
 "{\"title\":\"shiorin\"}"のようにバックスラッシュ記法で記述しないと
 正しく情報を送ることが出来ない。
 
 
 --data-binary [リクエストボディ(バイナリデータ)]
 →--data-binary "@shiorin.jpg"
 データをファイルから与えたい場合は
 データの先頭を文字 @ にして,続けてファイル名を指定する。
 
 
 -X, --request[リクエストメソッド]
 →-X POST http://shiorin.com
 HTTP サーバとの通信の際に用いる独自のリクエストメソッドを指定する。
 指定したリクエストが通常の GET に代わって用いられる。
 一般的なPUT や DELETEの他に、PROPFIND COPY MOVE なども指定することが出来る。
  
 URLを指定する時、特に複数のパラムを送信するときは注意が必要。
 ?title=shiorin&book=hon&…とつなげていくと、
 &以降を切り捨てられてしまうので、一つ目のパラムしかパラムとして認識してくれない。
 
 ので、URLを""で囲むか、&をURLエンコードしてあげる必要がある。
 →"http://shiorin.com?hukuzawa=yukichi&rimo=kon"
 
 
ここは抑えとかなきゃ脂肪するって所はこんなもんかな~
明日自分の打ってるコマンドもう一度確認してみる。


今日は眠いからこのへんでおやスヤァ;