我正在处理一个项目,在该项目中我需要调用我的服务,我的服务将以 JSON 格式返回数据。而且我不需要将此 JSON 响应序列化到任何 POJO,我只需要将数据作为字符串返回。这个应用程序对性能非常关键,所以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");
Run Code Online (Sandbox Code Playgroud)
但它抱怨说The type DefaultHttpClient is deprecated
,也许他们有新版本HttpClient
或其他方式来对 URL 进行 HttpClient 调用?
有什么我想念的吗?
用这个:
HttpClient httpclient = HttpClientBuilder.create().build();
Run Code Online (Sandbox Code Playgroud)
请参阅此 stackoverflow帖子
从 Apache HTTP Client API 版本 4.3 开始,DefaultHttpClient 已被弃用。
使用以下 Maven 依赖项作为示例。
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.1</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
导入后。
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;
Run Code Online (Sandbox Code Playgroud)
以下代码块。
HttpClient client = HttpClientBuilder.create().build();
HttpUriRequest httpUriRequest = new
HttpGet("http://example.domain/someuri");
HttpResponse response = client.execute(httpUriRequest);
System.out.println("Response:"+response);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
12861 次 |
最近记录: |