402

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

cURL を使用して Linux で Web サービスを呼び出すにはどうすればよいですか?

4

2 に答える 2

779

*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 "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
于 2013-02-20T11:25:02.720 に答える
54

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

ここに画像の説明を入力

于 2014-01-21T20:54:13.333 に答える