我正在编写REST应用程序,我正在使用RESTLET。我的服务有一个PUT方法。作为回复的一部分,我想返回用户自定义状态。
例如:
200 - 已成功创建并正在进行数据处理。
我尝试将状态设置如下。
@Put
public String storeItem(Representation entity) throws Exception {
// Some Processing
Status st = new Status(420,null,"REASON_PHRASE","Some description",null);
setStatus(st);
return "Some String Representation"
}
当我尝试使用CURL访问URL时,我得到以下状态行。
curl -v -X PUT "http://localhost:8080/extensible/data/process"
* About to connect() to localhost port 8080 (#0)
* Trying ::1... connected
* Connected to localhost (::1) port 8080 (#0)
> PUT /extensible/data/upload HTTP/1.1
> User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.14.0.0 zlib/1.2.3 libidn/1.18 libssh2/1.4.2
> Host: localhost:8080
> Accept: */*
>
< HTTP/1.1 420 420
< Content-Type: application/json; charset=UTF-8
< Date: Wed, 22 Jan 2014 06:56:24 GMT
< Accept-Ranges: bytes
< Server: Restlet-Framework/2.0.1
< Vary: Accept-Charset, Accept-Encoding, Accept-Language, Accept
< Content-Length: 21
<
* Connection #0 to host localhost left intact
* Closing connection #0
上面的状态行是 HTTP / 1.1 420 420 ,但我希望状态行 HTTP / 1.1 420 REASON_PHRASE
我做错了什么? 任何帮助将不胜感激。
答案 0 :(得分:0)
我对设计的两分钱
我认为你需要一个很好的理由来使用自定义的http状态
我不认为是这种情况。
应用程序使用的REST API和使用API的应用程序知道此特定PUT是异步进程的一部分
有一个简单的200与新id作为数据或链接到编辑网址应该足够了。
如果决定这样做,客户端应用程序应通知用户。