java - 如何处理 httpclient 4.3+ 中的超时?

标签 java apache-httpclient-4.x

在旧的 4.0 库中,您只需执行以下操作:

DefaultHttpClient httpClient = new DefaultHttpClient();
HttpParams params = httpClient.getParams();
HttpConnectionParams.setConnectionTimeout(httpParams, connectionTimeoutMillis);
HttpConnectionParams.setSoTimeout(httpParams, socketTimeoutMillis);

但现在 DefaultHttpClient 已被弃用,为了创建 httpclient,您必须执行以下操作:

HttpClients.createDefault();

这很好,但不允许我设置请求超时。那么,是否有一种解决方法/方法无需返回已弃用的类?

最佳答案

解决了...在新库中是这样的:

private static HttpClient createHttpClient(){
    RequestConfig config = RequestConfig.custom()
            .setSocketTimeout(TIMEOUT)
            .setConnectTimeout(TIMEOUT)
            .build();

    HttpClientBuilder hcBuilder = HttpClients.custom();
    hcBuilder.setDefaultRequestConfig(config);

    return hcBuilder.build();
}

您可以在 RequestConfig 对象中设置它,并将其传递给 httpclientbuilder,以便构建您自己的 http 客户端实例。

关于java - 如何处理 httpclient 4.3+ 中的超时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22882683/

相关文章:

java - 使用 Spring Boot + Spring data JPA 保存在 JPA 定义中时出现异常

java - 如何从 parquet 文件读取和写入自定义类

java - 在java中处理HTTP请求重定向

java - 对 Java POST 调用的 HTTP 错误请求响应

java - Android:与屏幕交互锁定按钮

java - IntelliJ 像在 Visual Studio 中一样自动创建私有(private)字段/方法?

java - Micronaut自定义验证约束,根据值编写自定义消息

java - 如何让 HttpAsyncClient 异步操作?

java - 使用 GZIPOutputStream 压缩以上传而不在本地创建 gzip 文件

HttpClient - 查询字符串的限制?