Web サービスを提供する Windows 上の ASP.NET で記述されたサーバー アプリケーションがあります。
cURL を使用して Linux で Web サービスを呼び出すにはどうすればよいですか?
Web サービスを提供する Windows 上の ASP.NET で記述されたサーバー アプリケーションがあります。
cURL を使用して Linux で Web サービスを呼び出すにはどうすればよいですか?
*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 "fileupload=@filename.txt" 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/
curl の結果をきれいに印刷する:
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 レスポンスをファイルに保存する
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 形式で結果を表示する方が便利かもしれません。| を追加するだけです。グレップ}| python -mjson.tool を curl コマンドの最後に追加する例を 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