我正在构建一个web应用程序的web服务,我想要一个简单的工具来测试这一点,我正在开发。我已经尝试了一些firefox插件(Poster,'REST Client'),尽管这些插件工作得很好,但我无法上传文件。
此外,我更希望有一个命令行工具,我可以使用它轻松地为该web服务编写一组集成测试,并且可以将其作为示例发送给该web服务的使用者。
我知道curl
可以解决这个问题,但我想举几个例子,特别是在身份验证(使用HTTP Basic)和文件上传方面。
发布于 2011-11-17 20:56:05
除了现有的答案之外,通常还需要格式化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上测试。
另一个问题是所需的内容类型。推特使用.xml
/.json
扩展,但更常用的REST需要Accept
header:
$ curl -H "Accept: application/json"
发布于 2011-11-17 20:40:23
回答我自己的问题。
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
POSTing一个文件和其他参数
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
发布于 2011-11-17 20:41:30
来自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发送post数据:
curl --data "birthyear=1905&press=%20OK%20" http://www.example.com/when.cgi
https://stackoverflow.com/questions/8167210
复制相似问题