How to use @HEAD in jax-rs using Jersey API or any other jax-rs API ? please give me sample.
问问题
6198 次
2 回答
8
您不需要明确支持 HEAD,因为 Jersey 会自动支持它。这是泽西岛的文档所说的:
默认情况下,JAX-RS 运行时将自动支持 HEAD 和 OPTIONS 方法,如果没有显式实现的话。对于 HEAD,运行时将调用实现的 GET 方法(如果存在)并忽略响应实体(如果设置)。对于 OPTIONS,Allow 响应标头将设置为资源支持的 HTTP 方法集。此外,Jersey 将返回描述资源的 WADL 文档。
(来源:https ://eclipse-ee4j.github.io/jersey.github.io/documentation/latest/user-guide.html#d0e2157 )
于 2013-04-29T17:11:01.657 回答
0
下面是一些简单的代码,说明了如何使用 Jersey 客户端发送 HEAD 请求:
ClientConfig config = new DefaultClientConfig();
Client client = Client.create(config);
WebResource resource = client
.resource("http://localhost:8080/services/echo?message=Hello+World");
ClientResponse response = resource.accept(
MediaType.APPLICATION_JSON).head();
System.out.println(response);
注意head
方法的使用。返回的response
对象包含许多有用的信息,例如生成的内容类型、请求的状态代码等。该示例可以转换为其他客户端库类型,但基本上您发送的请求与使用 GET 发送的请求完全相同,但使用 HEAD 方法代替。下面是通过浏览器工具(如“REST 控制台”)发送的请求示例:
要求
HEAD /services/echo?message=Hello+World HTTP/1.1
Host: localhost:8080
Connection: keep-alive
Content-Length: 0
Accept: application/json
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.65 Safari/537.31
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
Cookie: JSESSIONID=vWu5N2H8Y+P9SuZKWxhpIdgP.undefined
回复:
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Type: application/json
Content-Length: 0
Date: Fri, 03 May 2013 05:42:20 GMT
于 2013-05-03T05:46:33.417 回答