如何在使用Jersey API或任何其他jax-rs API的jax-rs中使用@HEAD?请给我样品。
发布于 2013-05-03 13:46:33
下面是一些非常简单的代码,演示了如何使用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 Console' )发送的请求示例
请求
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-04-30 01:11:02
你不需要显式地支持HEAD,因为Jersey会自动支持它。以下是Jersey的文档所说的:
默认情况下,如果没有显式实现,JAX-RS运行时将自动支持方法HEAD和OPTIONS。对于HEAD,运行时将调用已实现的GET方法(如果存在)并忽略响应实体(如果已设置)。对于选项,Allow response header将设置为资源支持的HTTP方法集。此外,Jersey将返回一个描述资源的
文档。
(来源:https://eclipse-ee4j.github.io/jersey.github.io/documentation/latest/user-guide.html#d0e2157)
https://stackoverflow.com/questions/16263287
复制相似问题