web-dev-qa-db-ja.com

HTTP POST LinuxでcURLを使用してGETおよびGETする

Webサービスを提供するWindows上のASP.NETで書かれたサーバーアプリケーションがあります。

LinuxのWebサービスをcURLで呼び出すにはどうすればいいですか?

326
Randhi Rupesh

* 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&param2=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の場合:

npmnodejsを使用している場合は、次のコマンドを実行してjsonパッケージをインストールできます。

npm install -g json

使用法:

curl -i -H "Accept: application/json" -H "Content-Type: application/json" -X GET http://hostname/resource | json

pippythonを使用している場合は、次のコマンドを実行して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
644
Amith Koujalgi

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

enter image description here

50
grepit