Webアプリケーション用のWebサービスを構築していますが、開発中にこれをテストする簡単なツールが欲しいです。私はいくつかのFirefoxプラグイン(ポスター、「RESTクライアント」)を試しましたが、これらがうまく機能しているにもかかわらず、ファイルをアップロードすることができませんでした。
また、このWebサービスの一連の統合テストを簡単に記述し、このWebサービスの利用者に例として送信できるコマンドラインツールが必要です。
curl
がこれに対して機能することを知っていますが、特に認証(HTTP Basicを使用)とファイルのアップロードに関するいくつかの例を示します。
既存の回答に加えて、REST出力(通常、JSONおよびXMLにはインデントがありません)をフォーマットすることが望まれます。これを試してください。
$ 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"
自分の質問に答える。
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
ファイルと追加パラメーターのPOST
curl -X POST -F 'param_name=@/filepath/filename' \
-F 'extra_param_name=extra_param_value' --basic --user username:password \
https://www.example.com/mobile/resource
http://curl.haxx.se/docs/httpscripting.html のドキュメントから:
HTTP認証
curl --user name:password http://www.example.com
Curlを使用してHTTPサーバーにファイルを配置します。
curl --upload-file uploadfile http://www.example.com/receive.cgi
Curlを使用して投稿データを送信します。
curl --data "birthyear=1905&press=%20OK%20" http://www.example.com/when.cgi