Webサービスを提供するWindows上のASP.NETで書かれたサーバーアプリケーションがあります。
LinuxのWebサービスをcURLで呼び出すにはどうすればいいですか?
* nixは私たちの生活をずっと楽にする素敵なちょっとしたコマンドを提供します。
取得する:
JSONの場合:
curl -i -H "Accept: application/json" -H "Content-Type: application/json" -X GET http://hostname/resource
XMLの場合:
curl -H "Accept: application/xml" -H "Content-Type: application/xml" -X GET http://hostname/resource
役職:
転記データの場合:
curl --data "param1=value1¶m2=value2" http://hostname/resource
ファイルのアップロード用:
curl --form "[email protected]" http://hostname/resource
RESTful HTTP投稿:
curl -X POST -d @filename http://hostname/resource
サイトへのログイン(auth):
curl -d "username=admin&password=admin&submit=Login" --dump-header headers http://localhost/Login
curl -L -b headers http://localhost/
カール結果をきれいに印刷する:
JSONの場合:
npm
とnodejs
を使用している場合は、次のコマンドを実行してjson
パッケージをインストールできます。
npm install -g json
使用法:
curl -i -H "Accept: application/json" -H "Content-Type: application/json" -X GET http://hostname/resource | json
pip
とpython
を使用している場合は、次のコマンドを実行してpjson
パッケージをインストールできます。
pip install pjson
使用法:
curl -i -H "Accept: application/json" -H "Content-Type: application/json" -X GET http://hostname/resource | pjson
Python 2.6以降を使用している場合は、jsonツールが同梱されています。
使用法:
curl -i -H "Accept: application/json" -H "Content-Type: application/json" -X GET http://hostname/resource | python -m json.tool
gem
およびRuby
を使用している場合は、次のコマンドを実行してcolorful_json
パッケージをインストールできます。
gem install colorful_json
使用法:
curl -i -H "Accept: application/json" -H "Content-Type: application/json" -X GET http://hostname/resource | cjson
apt-get
(あなたのLinuxディストリビューションのaptitudeパッケージマネージャ)を使っているなら、このコマンドを実行することでyajl-tools
パッケージをインストールすることができます。
Sudo apt-get install yajl-tools
使用法:
curl -i -H "Accept: application/json" -H "Content-Type: application/json" -X GET http://hostname/resource | json_reformat
XMLの場合:
Debian/Gnome環境で* nixを使用する場合は、libxml2-utils
をインストールしてください。
Sudo apt-get install libxml2-utils
使用法:
curl -H "Accept: application/xml" -H "Content-Type: application/xml" -X GET http://hostname/resource | xmllint --format -
またはtidy
をインストールします。
Sudo apt-get install tidy
使用法:
curl -H "Accept: application/xml" -H "Content-Type: application/xml" -X GET http://hostname/resource | tidy -xml -i -
カール応答をファイルに保存する
curl http://hostname/resource >> /path/to/your/file
または
curl http://hostname/resource -o /path/to/your/file
Curlコマンドの詳細な説明は、次のように入力してください。
man curl
Curlコマンドのオプション/スイッチについての詳細は、以下を押してください。
curl -h
Amith Koujalgiは正しいと思いますが、Webサービスの応答がJSONである場合は、結果を非常に長い文字列ではなくきれいなJSON形式で表示する方が便利かもしれません。追加するだけ| grep} curlコマンドの最後にあるpython -mjson.toolは、2つの例です。
JSON結果を使ったGETアプローチ
curl -i -H "Accept: application/json" http://someHostName/someEndpoint | grep }| python -mjson.tool
JSONの結果に対するPOSTのアプローチ
curl -X POST -H "Accept: Application/json" -H "Content-Type: application/json" http://someHostName/someEndpoint -d '{"id":"IDVALUE","name":"Mike"}' | grep }| python -mjson.tool