Jersey Rest Client是否比HttpClient更适合调用一个宁静的服务?

Pla*_*ces 3 rest json jersey java-ee gson

我需要调用一个能够返回json响应的resful api.我正在考虑使用jersey客户端api,但不确定它是否比直接使用HttpClient然后使用GSON将响应转换为Java对象更好.

Rya*_*art 11

Jersey客户端是从编码效率的角度来看比HttpClient的更好.考虑:

// Jersey client
WebResource resource = Client.create().resource("http://foo.com")
resource.path("widgets").entity(someWidget).type(APPLICATION_JSON).post();
Wodget wodget = resource.path("widgets/wodget").accept(APPLICATION_XML).get(Wodget.class);
Run Code Online (Sandbox Code Playgroud)

而不是:

// HttpClient
HttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost("http://foo.com/widgets");
HttpEntity someWidgetEntity = ... // something with GSON to marshal the 'someWidget'
httpPost.setEntity(someWidgetEntity);
HttpResponse response = httpclient.execute(httpPost);

HttpGet httpGet = new HttpGet("http://foo.com/widgets/wodget");
HttpResponse response = httpClient.execute(httpGet);
HttpEntity entity = response.getEntity();
if (entity != null) {
    ... // something with GSON to read in the wodget
}
Run Code Online (Sandbox Code Playgroud)

除此之外,Jersey客户端可以使用HttpClient进行HTTP交互,并且您可以充分利用这两个方面:简化的界面以及广泛使用的多功能HTTP客户端库的强大功能.

注意:上面的代码完全未经测试,但形状大致准确.