mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-04-19 03:01:48 +08:00
fix bug
This commit is contained in:
parent
50367a4a9f
commit
c84db9070a
@ -29,6 +29,7 @@ import org.apache.http.message.BasicHeader;
|
|||||||
import org.dromara.hutool.core.io.IoUtil;
|
import org.dromara.hutool.core.io.IoUtil;
|
||||||
import org.dromara.hutool.core.lang.Assert;
|
import org.dromara.hutool.core.lang.Assert;
|
||||||
import org.dromara.hutool.core.net.url.UrlBuilder;
|
import org.dromara.hutool.core.net.url.UrlBuilder;
|
||||||
|
import org.dromara.hutool.core.util.ObjUtil;
|
||||||
import org.dromara.hutool.http.GlobalHeaders;
|
import org.dromara.hutool.http.GlobalHeaders;
|
||||||
import org.dromara.hutool.http.HttpException;
|
import org.dromara.hutool.http.HttpException;
|
||||||
import org.dromara.hutool.http.client.ClientConfig;
|
import org.dromara.hutool.http.client.ClientConfig;
|
||||||
@ -108,19 +109,17 @@ public class HttpClient4Engine implements ClientEngine {
|
|||||||
}
|
}
|
||||||
|
|
||||||
final HttpClientBuilder clientBuilder = HttpClients.custom();
|
final HttpClientBuilder clientBuilder = HttpClients.custom();
|
||||||
final ClientConfig config = this.config;
|
final ClientConfig config = ObjUtil.defaultIfNull(this.config, ClientConfig::of);
|
||||||
if (null != config) {
|
// SSL配置
|
||||||
// SSL配置
|
final SSLInfo sslInfo = config.getSslInfo();
|
||||||
final SSLInfo sslInfo = config.getSslInfo();
|
if (null != sslInfo) {
|
||||||
if (null != sslInfo) {
|
clientBuilder.setSSLSocketFactory(buildSocketFactory(sslInfo));
|
||||||
clientBuilder.setSSLSocketFactory(buildSocketFactory(sslInfo));
|
|
||||||
}
|
|
||||||
if(config.isDisableCache()){
|
|
||||||
clientBuilder.disableAuthCaching();
|
|
||||||
}
|
|
||||||
|
|
||||||
clientBuilder.setDefaultRequestConfig(buildRequestConfig(config));
|
|
||||||
}
|
}
|
||||||
|
if(config.isDisableCache()){
|
||||||
|
clientBuilder.disableAuthCaching();
|
||||||
|
}
|
||||||
|
|
||||||
|
clientBuilder.setDefaultRequestConfig(buildRequestConfig(config));
|
||||||
|
|
||||||
// 设置默认头信息
|
// 设置默认头信息
|
||||||
clientBuilder.setDefaultHeaders(toHeaderList(GlobalHeaders.INSTANCE.headers()));
|
clientBuilder.setDefaultHeaders(toHeaderList(GlobalHeaders.INSTANCE.headers()));
|
||||||
|
@ -32,6 +32,7 @@ import org.apache.hc.core5.http.message.BasicHeader;
|
|||||||
import org.dromara.hutool.core.io.IoUtil;
|
import org.dromara.hutool.core.io.IoUtil;
|
||||||
import org.dromara.hutool.core.lang.Assert;
|
import org.dromara.hutool.core.lang.Assert;
|
||||||
import org.dromara.hutool.core.net.url.UrlBuilder;
|
import org.dromara.hutool.core.net.url.UrlBuilder;
|
||||||
|
import org.dromara.hutool.core.util.ObjUtil;
|
||||||
import org.dromara.hutool.http.GlobalHeaders;
|
import org.dromara.hutool.http.GlobalHeaders;
|
||||||
import org.dromara.hutool.http.HttpException;
|
import org.dromara.hutool.http.HttpException;
|
||||||
import org.dromara.hutool.http.client.ClientConfig;
|
import org.dromara.hutool.http.client.ClientConfig;
|
||||||
@ -113,13 +114,11 @@ public class HttpClient5Engine implements ClientEngine {
|
|||||||
|
|
||||||
final HttpClientBuilder clientBuilder = HttpClients.custom();
|
final HttpClientBuilder clientBuilder = HttpClients.custom();
|
||||||
|
|
||||||
final ClientConfig config = this.config;
|
final ClientConfig config = ObjUtil.defaultIfNull(this.config, ClientConfig::of);
|
||||||
if (null != config) {
|
clientBuilder.setConnectionManager(buildConnectionManager(config));
|
||||||
clientBuilder.setConnectionManager(buildConnectionManager(config));
|
clientBuilder.setDefaultRequestConfig(buildRequestConfig(config));
|
||||||
clientBuilder.setDefaultRequestConfig(buildRequestConfig(config));
|
if(config.isDisableCache()){
|
||||||
if(config.isDisableCache()){
|
clientBuilder.disableAuthCaching();
|
||||||
clientBuilder.disableAuthCaching();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 设置默认头信息
|
// 设置默认头信息
|
||||||
|
@ -14,6 +14,7 @@ package org.dromara.hutool.http.client.engine.okhttp;
|
|||||||
|
|
||||||
import okhttp3.OkHttpClient;
|
import okhttp3.OkHttpClient;
|
||||||
import org.dromara.hutool.core.io.IORuntimeException;
|
import org.dromara.hutool.core.io.IORuntimeException;
|
||||||
|
import org.dromara.hutool.core.util.ObjUtil;
|
||||||
import org.dromara.hutool.http.client.ClientConfig;
|
import org.dromara.hutool.http.client.ClientConfig;
|
||||||
import org.dromara.hutool.http.client.Request;
|
import org.dromara.hutool.http.client.Request;
|
||||||
import org.dromara.hutool.http.client.Response;
|
import org.dromara.hutool.http.client.Response;
|
||||||
@ -84,30 +85,28 @@ public class OkHttpEngine implements ClientEngine {
|
|||||||
|
|
||||||
final OkHttpClient.Builder builder = new OkHttpClient.Builder();
|
final OkHttpClient.Builder builder = new OkHttpClient.Builder();
|
||||||
|
|
||||||
final ClientConfig config = this.config;
|
final ClientConfig config = ObjUtil.defaultIfNull(this.config, ClientConfig::of);
|
||||||
if (null != config) {
|
// 连接超时
|
||||||
// 连接超时
|
final int connectionTimeout = config.getConnectionTimeout();
|
||||||
final int connectionTimeout = config.getConnectionTimeout();
|
if (connectionTimeout > 0) {
|
||||||
if (connectionTimeout > 0) {
|
builder.connectTimeout(connectionTimeout, TimeUnit.MILLISECONDS);
|
||||||
builder.connectTimeout(connectionTimeout, TimeUnit.MILLISECONDS);
|
|
||||||
}
|
|
||||||
// 读写超时
|
|
||||||
final int readTimeout = config.getReadTimeout();
|
|
||||||
if (readTimeout > 0) {
|
|
||||||
// 读写共用读取超时
|
|
||||||
builder.readTimeout(config.getReadTimeout(), TimeUnit.MILLISECONDS)
|
|
||||||
.writeTimeout(config.getReadTimeout(), TimeUnit.MILLISECONDS);
|
|
||||||
}
|
|
||||||
|
|
||||||
// SSL
|
|
||||||
final SSLInfo sslInfo = config.getSslInfo();
|
|
||||||
if (null != sslInfo) {
|
|
||||||
builder.sslSocketFactory(sslInfo.getSocketFactory(), sslInfo.getTrustManager());
|
|
||||||
}
|
|
||||||
|
|
||||||
// 设置代理
|
|
||||||
setProxy(builder, config);
|
|
||||||
}
|
}
|
||||||
|
// 读写超时
|
||||||
|
final int readTimeout = config.getReadTimeout();
|
||||||
|
if (readTimeout > 0) {
|
||||||
|
// 读写共用读取超时
|
||||||
|
builder.readTimeout(config.getReadTimeout(), TimeUnit.MILLISECONDS)
|
||||||
|
.writeTimeout(config.getReadTimeout(), TimeUnit.MILLISECONDS);
|
||||||
|
}
|
||||||
|
|
||||||
|
// SSL
|
||||||
|
final SSLInfo sslInfo = config.getSslInfo();
|
||||||
|
if (null != sslInfo) {
|
||||||
|
builder.sslSocketFactory(sslInfo.getSocketFactory(), sslInfo.getTrustManager());
|
||||||
|
}
|
||||||
|
|
||||||
|
// 设置代理
|
||||||
|
setProxy(builder, config);
|
||||||
|
|
||||||
// 默认关闭自动跳转
|
// 默认关闭自动跳转
|
||||||
builder.setFollowRedirects$okhttp(false);
|
builder.setFollowRedirects$okhttp(false);
|
||||||
|
@ -0,0 +1,26 @@
|
|||||||
|
package org.dromara.hutool.http.client;
|
||||||
|
|
||||||
|
import org.dromara.hutool.http.HttpGlobalConfig;
|
||||||
|
import org.dromara.hutool.http.HttpUtil;
|
||||||
|
import org.dromara.hutool.http.client.engine.okhttp.OkHttpEngine;
|
||||||
|
import org.dromara.hutool.http.meta.HeaderName;
|
||||||
|
import org.junit.jupiter.api.Disabled;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
public class IssueI8WU4MTest {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@Disabled
|
||||||
|
void timeoutTest() {
|
||||||
|
//设置超时,单位毫秒,这里1毫秒,按道理100%超时
|
||||||
|
HttpGlobalConfig.setTimeout(1);
|
||||||
|
|
||||||
|
final String body = HttpUtil.createGet("https://restapi.amap.com/v3/ip?Key=ad054b1810672fb0ff6107cd71518837")
|
||||||
|
.header(HeaderName.CONTENT_TYPE, "application/x-www-form-urlencoded; charset=utf-8")
|
||||||
|
.header("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0")
|
||||||
|
.send(new OkHttpEngine())
|
||||||
|
.body().
|
||||||
|
getString();
|
||||||
|
System.out.println(body);
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user