我正在开发一个项目,我需要调用我的服务,我的服务将以JSON格式返回数据。而且我不需要将此JSON响应序列化到任何POJO,我只需要将数据作为String返回。此应用程序非常重要,因此HttpClient
必须非常快
所以我决定使用Apache HttpClient,还是有更好的选择我可以使用?
DefaultHttpClient httpclient = new DefaultHttpClient();
HttpUriRequest request = new HttpGet("some-url");
request.addHeader("Context", "some-value");
HttpResponse response = httpClient.execute(request);
String response = IOUtils.toString(response.getEntity().getContent(), "UTF-8");
但它抱怨The type DefaultHttpClient is deprecated
所以他们可能有新版本的HttpClient
或其他一些方法来对网址进行HttpClient调用?
我有什么遗失的吗?
答案 0 :(得分:2)
答案 1 :(得分:2)
从病房的Apache HTTP Client API版本4.3开始,不推荐使用DefaultHttpClient。
使用以下maven依赖作为示例。
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.1</version>
</dependency>
导入后。
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGett;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.client.methods.HttpUriRequest;
以下代码阻止。
HttpClient client = HttpClientBuilder.create().build();
HttpUriRequest httpUriRequest = new
HttpGet("http://example.domain/someuri");
HttpResponse response = client.execute(httpUriRequest);
System.out.println("Response:"+response);