From f44902f0d38c4492d5d92599230312e335c2d9b9 Mon Sep 17 00:00:00 2001 From: yz Date: Tue, 16 Apr 2024 22:33:49 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BF=AE=E6=94=B9ClientEngineFactory?= =?UTF-8?q?=E4=B8=AD=E7=9A=84=E9=83=A8=E5=88=86=E6=9C=89=E8=AF=AF=E6=B3=A8?= =?UTF-8?q?=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hutool/http/client/engine/ClientEngineFactory.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/hutool-http/src/main/java/org/dromara/hutool/http/client/engine/ClientEngineFactory.java b/hutool-http/src/main/java/org/dromara/hutool/http/client/engine/ClientEngineFactory.java index a39ae0564..902f27795 100644 --- a/hutool-http/src/main/java/org/dromara/hutool/http/client/engine/ClientEngineFactory.java +++ b/hutool-http/src/main/java/org/dromara/hutool/http/client/engine/ClientEngineFactory.java @@ -38,7 +38,7 @@ public class ClientEngineFactory { } /** - * 根据用户引入的HTTP客户端引擎jar,自动创建对应的拼音引擎对象
+ * 根据用户引入的HTTP客户端引擎jar,自动创建对应的HTTP客户端引擎对象
* 推荐创建的引擎单例使用,此方法每次调用会返回新的引擎 * * @param config Http客户端配置 @@ -70,7 +70,7 @@ public class ClientEngineFactory { } /** - * 根据用户引入的HTTP客户端引擎jar,自动创建对应的拼音引擎对象
+ * 根据用户引入的HTTP客户端引擎jar,自动创建对应的HTTP客户端引擎对象
* 推荐创建的引擎单例使用,此方法每次调用会返回新的引擎 * * @return {@code ClientEngine} @@ -82,7 +82,7 @@ public class ClientEngineFactory { } /** - * 根据用户引入的拼音引擎jar,自动创建对应的拼音引擎对象
+ * 根据用户引入的HTTP客户端引擎jar,自动创建对应的HTTP客户端引擎对象
* 推荐创建的引擎单例使用,此方法每次调用会返回新的引擎 * * @return {@code EngineFactory} From 87e257354caa52e6dad26fd0cee14cc6bfcfbe7a Mon Sep 17 00:00:00 2001 From: yz Date: Tue, 16 Apr 2024 22:34:26 +0800 Subject: [PATCH 2/2] =?UTF-8?q?hutool-http=20OkHttpEngine=E6=94=AF?= =?UTF-8?q?=E6=8C=813.3.0=E8=87=B3=E4=BB=8A=E7=9A=843.x=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../client/engine/okhttp/OkHttpEngine.java | 23 +++++++++---------- .../client/engine/okhttp/OkHttpResponse.java | 8 +------ 2 files changed, 12 insertions(+), 19 deletions(-) diff --git a/hutool-http/src/main/java/org/dromara/hutool/http/client/engine/okhttp/OkHttpEngine.java b/hutool-http/src/main/java/org/dromara/hutool/http/client/engine/okhttp/OkHttpEngine.java index ccb1113de..efaf8710d 100644 --- a/hutool-http/src/main/java/org/dromara/hutool/http/client/engine/okhttp/OkHttpEngine.java +++ b/hutool-http/src/main/java/org/dromara/hutool/http/client/engine/okhttp/OkHttpEngine.java @@ -85,31 +85,31 @@ public class OkHttpEngine implements ClientEngine { final OkHttpClient.Builder builder = new OkHttpClient.Builder(); - final ClientConfig config = ObjUtil.defaultIfNull(this.config, ClientConfig::of); + final ClientConfig conf = ObjUtil.defaultIfNull(this.config, ClientConfig::of); // 连接超时 - final int connectionTimeout = config.getConnectionTimeout(); + final int connectionTimeout = conf.getConnectionTimeout(); if (connectionTimeout > 0) { builder.connectTimeout(connectionTimeout, TimeUnit.MILLISECONDS); } // 读写超时 - final int readTimeout = config.getReadTimeout(); + final int readTimeout = conf.getReadTimeout(); if (readTimeout > 0) { // 读写共用读取超时 - builder.readTimeout(config.getReadTimeout(), TimeUnit.MILLISECONDS) - .writeTimeout(config.getReadTimeout(), TimeUnit.MILLISECONDS); + builder.readTimeout(conf.getReadTimeout(), TimeUnit.MILLISECONDS) + .writeTimeout(conf.getReadTimeout(), TimeUnit.MILLISECONDS); } // SSL - final SSLInfo sslInfo = config.getSslInfo(); - if (null != sslInfo) { + final SSLInfo sslInfo = conf.getSslInfo(); + if (null != sslInfo && null != sslInfo.getSocketFactory() && null != sslInfo.getTrustManager()){ builder.sslSocketFactory(sslInfo.getSocketFactory(), sslInfo.getTrustManager()); } // 设置代理 - setProxy(builder, config); + setProxy(builder, conf); // 默认关闭自动跳转 - builder.setFollowRedirects$okhttp(false); + builder.followRedirects(false); this.client = builder.build(); } @@ -127,7 +127,6 @@ public class OkHttpEngine implements ClientEngine { // 填充方法 final String method = message.method().name(); final HttpBody body = message.handledBody(); - // if (HttpMethod.permitsRequestBody(method)) { if (null != body) { // 为了兼容支持rest请求,在此不区分是否为GET等方法,一律按照body是否有值填充,兼容 builder.method(method, new OkHttpRequestBody(body)); @@ -150,10 +149,10 @@ public class OkHttpEngine implements ClientEngine { private static void setProxy(final OkHttpClient.Builder builder, final ClientConfig config) { final HttpProxy proxy = config.getProxy(); if (null != proxy) { - builder.setProxy$okhttp(proxy); + builder.proxy(proxy); final PasswordAuthentication auth = proxy.getAuth(); if (null != auth) { - builder.setProxyAuthenticator$okhttp(new BasicProxyAuthenticator(auth)); + builder.proxyAuthenticator(new BasicProxyAuthenticator(auth)); } } } diff --git a/hutool-http/src/main/java/org/dromara/hutool/http/client/engine/okhttp/OkHttpResponse.java b/hutool-http/src/main/java/org/dromara/hutool/http/client/engine/okhttp/OkHttpResponse.java index 0ad89331c..cdb9c6538 100644 --- a/hutool-http/src/main/java/org/dromara/hutool/http/client/engine/okhttp/OkHttpResponse.java +++ b/hutool-http/src/main/java/org/dromara/hutool/http/client/engine/okhttp/OkHttpResponse.java @@ -60,13 +60,7 @@ public class OkHttpResponse implements Response { @Override public Map> headers() { - final Headers headers = rawRes.headers(); - final HashMap> result = new LinkedHashMap<>(headers.size(), 1); - for (final Pair header : headers) { - final List valueList = result.computeIfAbsent(header.getFirst(), k -> new ArrayList<>()); - valueList.add(header.getSecond()); - } - return result; + return rawRes.headers().toMultimap(); } @Override