使用cURL调试REST接口

最近在学习Restful API,今天看到一篇很好的文章,决定将其翻译出来,虽然是很久以前的文章,但感觉受益匪浅。文章来源

–译文开始–

在过去的几个月一直在做Restful网页应用,并使用cURL快速测试功能。

测试REST资源的基本命令
POST数据到REST资源

curl -i -H "Accept: application/json" -X POST -d "firstName=james" http://192.168.0.165/persons/person

参数如下:
i – 显示响应头
H – 向资源请求头部
X – 传递HTTP名称
d – 传入双引号中的参数,多个参数用’&’分割
上述命令posts名字(firstName)”james”到person资源。假设服务器使用名字James创建一个新的person,我们同时告诉服务器以json格式返回这个新创建的资源。
PUT资源

curl -i -H "Accept: application/json" -X PUT -d "phone=1-800-999-9999" http://192.168.0.165/persons/person/1curl -i -H "Accept: application/json" -X PUT -d "phone=1-800-999-9999" http://192.168.0.165/persons/person/1

这里puts一个电话号码到上面创建的person资源。
GET资源

curl -i -H "Accept: application/json" http://192.168.0.165/persons/person/1

对于GET请求,-X参数为可选参数。(译者注:curl默认为GET模式请求数据,译者就会废话。)

curl -i -H "Accept: application/json" http://192.168.0.165/persons?zipcode=93031

你可以在url后边添加请求参数。

curl -i -H "Accept: application/json" "http://192.168.0.165/persons?firstName=james&lastName=wallis"

传入多个用&链接的参数时,资源uri需要加引号。如果参数值中带空格,需要转义,使用+或者%20代替空格。
DELETE资源

curl -i -H "Accept: application/json" -X DELETE http://192.168.0.165/persons/person/1

删除一条资源, -X参数支持DELETE选项
使用POST来PUT资源

curl -i -H "Accept: application/json" -H "X-HTTP-Method-Override: PUT" -X POST -d "phone=1-800-999-9999" http://192.168.0.165/persons/person/1

有些客户端不支持PUT或者发送PUT请求比较困难。出于这些原因,你可以将POST请求头中X-HTTP-Method-Override设置为PUT,告诉服务器端想要的是PUT请求。大多数服务器端(你也可以自己编码)支持X-HTTP-Method-Override,转换请求为期望的请求方法(X-HTTP-Method-Override的值)。本例puts一个电话号码(通过POST)到标识为1的person资源。
使用POST来DELETE资源

curl -i -H "Accept: application/json" -H "X-HTTP-Method-Override: DELETE" -X POST http://192.168.0.3:8090/persons/person/1

和前一个命令非常相似,这个例子删除了标识为1的person资源,这里使用POST HTTP方法来告诉服务器重写为DELETE。

另一个不错的REST测试工具Poster Firefox add-on如果你不想鸟cURL或者你用Widows系统(当然你可以安装Cygwin然后安装使用cURL)测试,这是一个不错的GUI工具。不过与Poster相比,使用cURL生产效率更高。
使用cURL来PUT/GET文件,看这里

–翻译完毕–

“使用cURL调试REST接口”的一个回复

发表评论

电子邮件地址不会被公开。 必填项已用*标注