curl
コマンドのオプションが多くて見るのが怖かったcurl、
API開発にピッタリのコマンドだったんだ、
もっと早く調べればよかった。。。
いつものように、自分用メモ。
第一歩
Windowsなのでインストール。
(curl - Releases and Downloads)https://curl.haxx.se/download.html
インストールが終わったら実行実行!
サイトにアクセス。
HTMLが返ってきます。
http://httpbin.org/ さんがcurlの勉強に最適のようです。
HTTPメソッド
GETとかPOSTとかPUTとかDELETEとか。
-X オプションを使う。
(Xは何かな? eXecute?)
>curl -X GET http://httpbin.org/get { "args": {}, "headers": { "Accept": "*/*", "Host": "httpbin.org", "User-Agent": "curl/7.55.1", "X-Amzn-Trace-Id": "Root=1-617aa663-695eff746736e0823a43b1c1" }, "origin": "131.147.82.157", "url": "http://httpbin.org/get" }
データを送りつけよう
JSONを送ってみる。
-dオプションを使う。 (dはDataのdだ。間違いない。)
>curl http://httpbin.org/post -X POST -d "{\"name\": \"masawa\", \"age\": \"123\"}" { "args": {}, "data": "", "files": {}, "form": { "{\"name\": \"masawa\", \"age\": \"123\"}": "" }, "headers": { "Accept": "*/*", "Content-Length": "32", "Content-Type": "application/x-www-form-urlencoded", "Host": "httpbin.org", "User-Agent": "curl/7.55.1", "X-Amzn-Trace-Id": "Root=1-617aaaae-0840d3c147c17c6100b21605" }, "json": null, "origin": "131.147.82.157", "url": "http://httpbin.org/post" }
JSONはダブルクォートをバックスラッシュでエスケープするしかないのかなあ。
HTTPヘッダ
-Hを使う。 (HeaderのHに間違いない。)
>curl http://httpbin.org/post -X POST -H "Content-type: application/jason" -d "{\"name\": \"masawa\", \"age\": \"123\"}" { "args": {}, "data": "{\"name\": \"masawa\", \"age\": \"123\"}", "files": {}, "form": {}, "headers": { "Accept": "*/*", "Content-Length": "32", "Content-Type": "application/jason", "Host": "httpbin.org", "User-Agent": "curl/7.55.1", "X-Amzn-Trace-Id": "Root=1-617aacd5-2d9d32b865dacb63608c1829" }, "json": { "age": "123", "name": "masawa" }, "origin": "131.147.82.157", "url": "http://httpbin.org/post" }
Cookie
-bを使う。 (なんで b なんだーー!)
>curl http://httpbin.org/post -X POST -b 'name=masawa' { "args": {}, "data": "", "files": {}, "form": {}, "headers": { "Accept": "*/*", "Cookie": "'name=masawa'", "Host": "httpbin.org", "User-Agent": "curl/7.55.1", "X-Amzn-Trace-Id": "Root=1-617ab33a-1bd8d9c03f31d2b1052aa151" }, "json": null, "origin": "131.147.82.157", "url": "http://httpbin.org/post" }
まとめ
curlのオプションは他にも気が遠くなる位ある。
curl -h
でも、今のところは書いてきたようなオプション使えばAPI開発には十分かと思う。