2011-11-17 15 views
20

私はWebアプリケーション用のWebサービスを構築しており、開発中にこれをテストする簡単なツールが必要です。私はいくつかのfirefoxプラグイン(Poster、 'REST Client')を試してみましたが、これらはうまくいきますが、ファイルをアップロードすることができませんでした。コマンドラインカールを使用してWebサービスをテストする方法

また、このWebサービスの統合テストのセットを簡単に作成するために使用できるコマンドラインツールがあり、このWebサービスのコンシューマにサンプルとして送信できます。

curlがこれに対応できますが、特に認証(HTTP Basicを使用)とファイルアップロードに関するいくつかの例が好きです。

答えて

15

ことが多い(典型的には、JSONとXMLはくぼみを欠く)REST出力をフォーマットすることが望まれている既存の回答に加えて。試してみてください:

$ curl https://api.twitter.com/1/help/configuration.xml | xmllint --format - 
$ curl https://api.twitter.com/1/help/configuration.json | python -mjson.tool 

Ubuntu 11.0.4/11.10でテスト済みです。

もう1つの問題は、望ましいコンテンツタイプです。 Twitterは.xml/.json拡張子を使用していますが、より多くの慣用的なRESTはAcceptヘッダー必要になります。追加のための

$ curl -H "Accept: application/json" 
+0

感謝を。 –

+0

例を使用しようとするとこのエラーが発生します。 'xmllint'は、内部または外部のコマンド、操作可能なプログラムまたはバッチファイルとして認識されません。過去5年間で何か変わったのでしょうか? – influent

+0

@influent、これはxmllintがインストールされていないことを意味します –

19

私自身の質問に答える。

curl -X GET --basic --user username:password \ 
    https://www.example.com/mobile/resource 

curl -X DELETE --basic --user username:password \ 
    https://www.example.com/mobile/resource 

curl -X PUT --basic --user username:password -d 'param1_name=param1_value' \ 
    -d 'param2_name=param2_value' https://www.example.com/mobile/resource 

http://curl.haxx.se/docs/httpscripting.htmlのドキュメントからファイルおよび追加のパラメータ

curl -X POST -F '[email protected]/filepath/filename' \ 
    -F 'extra_param_name=extra_param_value' --basic --user username:password \ 
    https://www.example.com/mobile/resource 
2

投稿:

HTTP認証

curl --user name:password http://www.example.com 

がカールしてHTTPサーバにファイルを置く:

カールとの
curl --upload-file uploadfile http://www.example.com/receive.cgi 

送信後のデータ:

curl --data "birthyear=1905&press=%20OK%20" http://www.example.com/when.cgi 
関連する問題