小编典典

已弃用的 Java HttpClient - 有多难?

all

我要做的就是下载一些 JSON 并将其反序列化为一个对象。我还没有下载JSON。

我能找到的几乎每一个 HttpClient 示例,包括 apache 网站上的示例,看起来都像......

import org.apache.http.client.HttpClient;
import org.apache.http.impl.client.DefaultHttpClient;

public void blah() {
    HttpClient client = new DefaultHttpClient();
    ...
}

但是,Netbeans 告诉我这DefaultHttpClient已被弃用。我试过谷歌搜索DefaultHttpClient deprecated以及我能想到的许多其他变体,但找不到任何有用的结果,所以我显然遗漏了一些东西。

下载网页内容的正确 Java7 方法是什么?作为语言的一部分,真的没有像样的 Http 客户端吗?我觉得很难相信。

我对此的 Maven 依赖是…

<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpclient</artifactId>
    <version>LATEST</version>
    <type>jar</type>
</dependency>

阅读 157

收藏
2022-08-17

共1个答案

小编典典

相关进口:

import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import java.io.IOException;

用法:

HttpClient httpClient = HttpClientBuilder.create().build();

编辑(根据朱尔斯的建议):

由于该build()方法返回 a CloseableHttpClientwhich is-a AutoClosable,您可以将声明放在
try-with-resources 语句(Java 7+)中:

try (CloseableHttpClient httpClient = HttpClientBuilder.create().build()) {

    // use httpClient (no need to close it explicitly)

} catch (IOException e) {

    // handle

}
2022-08-17