diff --git a/hutool-http/src/main/java/org/dromara/hutool/http/client/engine/jdk/JdkClientEngine.java b/hutool-http/src/main/java/org/dromara/hutool/http/client/engine/jdk/JdkClientEngine.java index 243428751..894466570 100644 --- a/hutool-http/src/main/java/org/dromara/hutool/http/client/engine/jdk/JdkClientEngine.java +++ b/hutool-http/src/main/java/org/dromara/hutool/http/client/engine/jdk/JdkClientEngine.java @@ -42,10 +42,6 @@ import java.util.List; public class JdkClientEngine implements ClientEngine { private ClientConfig config; - /** - * 重定向次数计数器,内部使用 - */ - private int redirectCount; /** * 构造 @@ -164,8 +160,8 @@ public class JdkClientEngine implements ClientEngine { if (code != HttpURLConnection.HTTP_OK) { if (HttpStatus.isRedirected(code)) { message.url(getLocationUrl(message.handledUrl(), conn.header(HeaderName.LOCATION))); - if (redirectCount < message.maxRedirectCount()) { - redirectCount++; + if (conn.redirectCount < message.maxRedirectCount()) { + conn.redirectCount++; return send(message, isAsync); } } diff --git a/hutool-http/src/main/java/org/dromara/hutool/http/client/engine/jdk/JdkHttpConnection.java b/hutool-http/src/main/java/org/dromara/hutool/http/client/engine/jdk/JdkHttpConnection.java index f8beb41be..5f85440d6 100644 --- a/hutool-http/src/main/java/org/dromara/hutool/http/client/engine/jdk/JdkHttpConnection.java +++ b/hutool-http/src/main/java/org/dromara/hutool/http/client/engine/jdk/JdkHttpConnection.java @@ -46,6 +46,10 @@ public class JdkHttpConnection implements HeaderOperation, Cl private final URL url; private final Proxy proxy; private final HttpURLConnection conn; + /** + * 重定向次数计数器,内部使用 + */ + protected int redirectCount; /** * 创建HttpConnection @@ -292,9 +296,9 @@ public class JdkHttpConnection implements HeaderOperation, Cl @Override public String header(final String name) { String headerField = this.conn.getHeaderField(name); - if(null == headerField){ + if (null == headerField) { final Map> headers = headers(); - headerField = CollUtil.getFirst(MapUtil.firstMatchValue(headers, entry-> StrUtil.equalsIgnoreCase(name, entry.getKey()))); + headerField = CollUtil.getFirst(MapUtil.firstMatchValue(headers, entry -> StrUtil.equalsIgnoreCase(name, entry.getKey()))); } return headerField;