泽西岛客户端请求网络服务
Jersey client request to web-service
我正在尝试通过球衣客户端请求网络服务:
WebResource service = client.resource(UriBuilder.fromUri("http://localhost:8080/jersey-example-new/").build());
System.out.println(service.path("rs/").path("account/details/1").accept(MediaType.APPLICATION_JSON).get(String.class));
但我得到:
GET http://localhost:8080/jersey-example-new/rs/account/details/1 returned a response status of 406 Not Acceptable
请注意,url 路径 http://localhost:8080/jersey-example-new/rs/account/details/1
在浏览器中有效。 java 客户端请求有什么问题?
端点代码:
@Path("account")
public class AccountDetailsService {
@GET
@Path("/details/{param}")
@Produces(MediaType.TEXT_PLAIN)
public Response getAccountDetails(@PathParam("param") String accountName) {
String output = "Account Name : " + accountName;
return Response.status(200).entity(output).build();
}
}
你应该改变
System.out.println(service.path("rs/").path("account/details/1").accept(MediaType.APPLICATION_JSON).get(String.class));
到
System.out.println(service.path("rs/").path("account/details/1").accept(MediaType.TEXT_PLAIN).get(String.class));
你只生产了 TEXT_PLAIN,但你请求了 media-type APPLICATION_JSON(通过接受 header),这就是你得到响应的原因,即请求不可接受。
我正在尝试通过球衣客户端请求网络服务:
WebResource service = client.resource(UriBuilder.fromUri("http://localhost:8080/jersey-example-new/").build());
System.out.println(service.path("rs/").path("account/details/1").accept(MediaType.APPLICATION_JSON).get(String.class));
但我得到:
GET http://localhost:8080/jersey-example-new/rs/account/details/1 returned a response status of 406 Not Acceptable
请注意,url 路径 http://localhost:8080/jersey-example-new/rs/account/details/1
在浏览器中有效。 java 客户端请求有什么问题?
端点代码:
@Path("account")
public class AccountDetailsService {
@GET
@Path("/details/{param}")
@Produces(MediaType.TEXT_PLAIN)
public Response getAccountDetails(@PathParam("param") String accountName) {
String output = "Account Name : " + accountName;
return Response.status(200).entity(output).build();
}
}
你应该改变
System.out.println(service.path("rs/").path("account/details/1").accept(MediaType.APPLICATION_JSON).get(String.class));
到
System.out.println(service.path("rs/").path("account/details/1").accept(MediaType.TEXT_PLAIN).get(String.class));
你只生产了 TEXT_PLAIN,但你请求了 media-type APPLICATION_JSON(通过接受 header),这就是你得到响应的原因,即请求不可接受。