diff --git a/hutool-cron/src/main/java/org/dromara/hutool/cron/CronUtil.java b/hutool-cron/src/main/java/org/dromara/hutool/cron/CronUtil.java index a64fb4a8b..2f3c05348 100644 --- a/hutool-cron/src/main/java/org/dromara/hutool/cron/CronUtil.java +++ b/hutool-cron/src/main/java/org/dromara/hutool/cron/CronUtil.java @@ -105,17 +105,6 @@ public class CronUtil { return id; } - /** - * 加入定时任务 - * - * @param schedulingPattern 定时任务执行时间的crontab表达式 - * @param task 任务 - * @return 定时任务ID - */ - public static String schedule(final String schedulingPattern, final Runnable task) { - return scheduler.schedule(schedulingPattern, task); - } - /** * 批量加入配置文件中的定时任务 * diff --git a/hutool-cron/src/main/java/org/dromara/hutool/cron/Scheduler.java b/hutool-cron/src/main/java/org/dromara/hutool/cron/Scheduler.java index e2672278d..01ee9847e 100644 --- a/hutool-cron/src/main/java/org/dromara/hutool/cron/Scheduler.java +++ b/hutool-cron/src/main/java/org/dromara/hutool/cron/Scheduler.java @@ -238,17 +238,6 @@ public class Scheduler implements Serializable { return this; } - /** - * 新增Task,使用随机UUID - * - * @param pattern {@link CronPattern}对应的String表达式 - * @param task {@link Runnable} - * @return ID - */ - public String schedule(final String pattern, final Runnable task) { - return schedule(pattern, new RunnableTask(task)); - } - /** * 新增Task,使用随机UUID * diff --git a/hutool-cron/src/test/java/org/dromara/hutool/cron/demo/AddAndRemoveMainTest.java b/hutool-cron/src/test/java/org/dromara/hutool/cron/demo/AddAndRemoveMainTest.java index afd2b8205..7eca57256 100644 --- a/hutool-cron/src/test/java/org/dromara/hutool/cron/demo/AddAndRemoveMainTest.java +++ b/hutool-cron/src/test/java/org/dromara/hutool/cron/demo/AddAndRemoveMainTest.java @@ -26,12 +26,12 @@ public class AddAndRemoveMainTest { CronUtil.setMatchSecond(true); CronUtil.start(false); CronUtil.getScheduler().clear(); - final String id = CronUtil.schedule("*/2 * * * * *", (Runnable) () -> Console.log("task running : 2s")); + final String id = CronUtil.schedule("*/2 * * * * *", () -> Console.log("task running : 2s")); ThreadUtil.sleep(3000); CronUtil.remove(id); Console.log("Task Removed"); - CronUtil.schedule("*/3 * * * * *", (Runnable) () -> Console.log("New task add running : 3s")); + CronUtil.schedule("*/3 * * * * *", () -> Console.log("New task add running : 3s")); Console.log("New Task added."); } } diff --git a/hutool-cron/src/test/java/org/dromara/hutool/cron/demo/CronTest.java b/hutool-cron/src/test/java/org/dromara/hutool/cron/demo/CronTest.java index aaef64b29..78695669c 100644 --- a/hutool-cron/src/test/java/org/dromara/hutool/cron/demo/CronTest.java +++ b/hutool-cron/src/test/java/org/dromara/hutool/cron/demo/CronTest.java @@ -86,7 +86,8 @@ public class CronTest { @Test @Disabled public void addAndRemoveTest() { - final String id = CronUtil.schedule("*/2 * * * * *", (Runnable) () -> Console.log("task running : 2s")); + final String id = CronUtil.schedule("*/2 * * * * *", + () -> Console.log("task running : 2s")); Console.log(id); CronUtil.remove(id); diff --git a/hutool-cron/src/test/java/org/dromara/hutool/cron/demo/SimpleDemo.java b/hutool-cron/src/test/java/org/dromara/hutool/cron/demo/SimpleDemo.java new file mode 100644 index 000000000..d958b21d1 --- /dev/null +++ b/hutool-cron/src/test/java/org/dromara/hutool/cron/demo/SimpleDemo.java @@ -0,0 +1,16 @@ +package org.dromara.hutool.cron.demo; + +import org.dromara.hutool.core.lang.Console; +import org.dromara.hutool.cron.CronUtil; + +public class SimpleDemo { + public static void main(String[] args) { + // 打开秒匹配 + CronUtil.setMatchSecond(true); + // 添加任务 + CronUtil.schedule("*/2 * * * * *", + () -> Console.log("Hutool task running!")); + // 启动 + CronUtil.start(); + } +} diff --git a/hutool-cron/src/test/java/org/dromara/hutool/cron/demo/package-info.java b/hutool-cron/src/test/java/org/dromara/hutool/cron/demo/package-info.java new file mode 100644 index 000000000..f9e785f36 --- /dev/null +++ b/hutool-cron/src/test/java/org/dromara/hutool/cron/demo/package-info.java @@ -0,0 +1,5 @@ +/** + * 定时任务示例 + * + */ +package org.dromara.hutool.cron.demo; diff --git a/hutool-http/src/main/java/org/dromara/hutool/http/client/ClientConfig.java b/hutool-http/src/main/java/org/dromara/hutool/http/client/ClientConfig.java index f8e2a6768..b6c580fee 100644 --- a/hutool-http/src/main/java/org/dromara/hutool/http/client/ClientConfig.java +++ b/hutool-http/src/main/java/org/dromara/hutool/http/client/ClientConfig.java @@ -17,7 +17,7 @@ package org.dromara.hutool.http.client; import org.dromara.hutool.http.HttpGlobalConfig; -import org.dromara.hutool.http.proxy.HttpProxy; +import org.dromara.hutool.http.proxy.ProxyInfo; import org.dromara.hutool.http.ssl.SSLInfo; /** @@ -55,7 +55,7 @@ public class ClientConfig { /** * 代理 */ - private HttpProxy proxy; + private ProxyInfo proxy; /** * 是否遇到响应状态码3xx时自动重定向请求 */ @@ -189,7 +189,7 @@ public class ClientConfig { * * @return 代理 */ - public HttpProxy getProxy() { + public ProxyInfo getProxy() { return proxy; } @@ -201,16 +201,16 @@ public class ClientConfig { * @return this */ public ClientConfig setHttpProxy(final String host, final int port) { - return setProxy(new HttpProxy(host, port)); + return setProxy(new ProxyInfo(host, port)); } /** * 设置代理 * - * @param proxy 代理 {@link HttpProxy} + * @param proxy 代理 {@link ProxyInfo} * @return this */ - public ClientConfig setProxy(final HttpProxy proxy) { + public ClientConfig setProxy(final ProxyInfo proxy) { this.proxy = proxy; return this; } diff --git a/hutool-http/src/main/java/org/dromara/hutool/http/client/engine/httpclient4/HttpClient4Engine.java b/hutool-http/src/main/java/org/dromara/hutool/http/client/engine/httpclient4/HttpClient4Engine.java index 4e724002b..1a7c8e3cc 100644 --- a/hutool-http/src/main/java/org/dromara/hutool/http/client/engine/httpclient4/HttpClient4Engine.java +++ b/hutool-http/src/main/java/org/dromara/hutool/http/client/engine/httpclient4/HttpClient4Engine.java @@ -27,6 +27,7 @@ import org.apache.http.client.methods.RequestBuilder; import org.apache.http.conn.ssl.SSLConnectionSocketFactory; import org.apache.http.impl.client.*; import org.apache.http.impl.conn.PoolingHttpClientConnectionManager; +import org.apache.http.impl.conn.SystemDefaultRoutePlanner; import org.apache.http.message.BasicHeader; import org.dromara.hutool.core.io.IoUtil; import org.dromara.hutool.core.lang.Assert; @@ -42,11 +43,12 @@ import org.dromara.hutool.http.client.body.HttpBody; import org.dromara.hutool.http.client.cookie.InMemoryCookieStore; import org.dromara.hutool.http.client.engine.AbstractClientEngine; import org.dromara.hutool.http.meta.HeaderName; -import org.dromara.hutool.http.proxy.HttpProxy; +import org.dromara.hutool.http.proxy.ProxyInfo; import org.dromara.hutool.http.ssl.SSLInfo; import java.io.IOException; import java.net.PasswordAuthentication; +import java.net.ProxySelector; import java.util.ArrayList; import java.util.Collection; import java.util.List; @@ -290,18 +292,20 @@ public class HttpClient4Engine extends AbstractClientEngine { return; } - final HttpProxy proxy = config.getProxy(); + final ProxyInfo proxy = config.getProxy(); if (null != proxy) { - final HttpHost httpHost = new HttpHost(proxy.getHost(), proxy.getPort()); - clientBuilder.setProxy(httpHost); + final ProxySelector proxySelector = proxy.getProxySelector(); + if(null != proxySelector){ + clientBuilder.setRoutePlanner(new SystemDefaultRoutePlanner(proxySelector)); + } final PasswordAuthentication auth = proxy.getAuth(); if (null != auth) { // 代理验证 - final BasicCredentialsProvider credsProvider = new BasicCredentialsProvider(); - credsProvider.setCredentials( - new AuthScope(httpHost), + final BasicCredentialsProvider credentialsProvider = new BasicCredentialsProvider(); + credentialsProvider.setCredentials( + new AuthScope(new HttpHost(proxy.getAuthHost(), proxy.getAuthPort())), new UsernamePasswordCredentials(auth.getUserName(), String.valueOf(auth.getPassword()))); - clientBuilder.setDefaultCredentialsProvider(credsProvider); + clientBuilder.setDefaultCredentialsProvider(credentialsProvider); } } } diff --git a/hutool-http/src/main/java/org/dromara/hutool/http/client/engine/httpclient5/HttpClient5Engine.java b/hutool-http/src/main/java/org/dromara/hutool/http/client/engine/httpclient5/HttpClient5Engine.java index cbb735a1a..16d092bd7 100644 --- a/hutool-http/src/main/java/org/dromara/hutool/http/client/engine/httpclient5/HttpClient5Engine.java +++ b/hutool-http/src/main/java/org/dromara/hutool/http/client/engine/httpclient5/HttpClient5Engine.java @@ -47,7 +47,7 @@ import org.dromara.hutool.http.client.body.HttpBody; import org.dromara.hutool.http.client.cookie.InMemoryCookieStore; import org.dromara.hutool.http.client.engine.AbstractClientEngine; import org.dromara.hutool.http.meta.HeaderName; -import org.dromara.hutool.http.proxy.HttpProxy; +import org.dromara.hutool.http.proxy.ProxyInfo; import org.dromara.hutool.http.ssl.SSLInfo; import java.io.IOException; @@ -296,16 +296,15 @@ public class HttpClient5Engine extends AbstractClientEngine { return; } - final HttpProxy proxy = config.getProxy(); + final ProxyInfo proxy = config.getProxy(); if (null != proxy) { - final HttpHost httpHost = new HttpHost(proxy.getHost(), proxy.getPort()); - clientBuilder.setProxy(httpHost); + clientBuilder.setProxySelector(proxy.getProxySelector()); final PasswordAuthentication auth = proxy.getAuth(); if (null != auth) { // 代理验证 final BasicCredentialsProvider credsProvider = new BasicCredentialsProvider(); credsProvider.setCredentials( - new AuthScope(httpHost), + new AuthScope(new HttpHost(proxy.getAuthHost(), proxy.getAuthPort())), new UsernamePasswordCredentials(auth.getUserName(), auth.getPassword())); clientBuilder.setDefaultCredentialsProvider(credsProvider); } 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 53626c693..1e9ab1169 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 @@ -19,6 +19,7 @@ package org.dromara.hutool.http.client.engine.jdk; import org.dromara.hutool.core.io.IORuntimeException; import org.dromara.hutool.core.io.IoUtil; import org.dromara.hutool.core.net.url.UrlBuilder; +import org.dromara.hutool.core.net.url.UrlUtil; import org.dromara.hutool.core.text.StrUtil; import org.dromara.hutool.core.text.split.SplitUtil; import org.dromara.hutool.core.util.ObjUtil; @@ -31,9 +32,12 @@ import org.dromara.hutool.http.client.engine.AbstractClientEngine; import org.dromara.hutool.http.meta.HeaderName; import org.dromara.hutool.http.meta.HttpStatus; import org.dromara.hutool.http.meta.Method; +import org.dromara.hutool.http.proxy.ProxyInfo; import java.io.IOException; import java.net.HttpURLConnection; +import java.net.Proxy; +import java.net.URL; import java.util.List; /** @@ -125,8 +129,14 @@ public class JdkClientEngine extends AbstractClientEngine { private JdkHttpConnection buildConn(final Request message) { final ClientConfig config = ObjUtil.defaultIfNull(this.config, ClientConfig::of); + final URL url = message.handledUrl().toURL(); + Proxy proxy = null; + final ProxyInfo proxyInfo = config.getProxy(); + if(null != proxyInfo){ + proxy = proxyInfo.selectFirst(UrlUtil.toURI(url)); + } final JdkHttpConnection conn = JdkHttpConnection - .of(message.handledUrl().toURL(), config.getProxy()) + .of(url, proxy) .setConnectTimeout(config.getConnectionTimeout()) .setReadTimeout(config.getReadTimeout()) .setMethod(message.method())// 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 569ad4004..e8a38ff7d 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 @@ -27,13 +27,14 @@ import org.dromara.hutool.http.client.Response; import org.dromara.hutool.http.client.body.HttpBody; import org.dromara.hutool.http.client.cookie.InMemoryCookieStore; import org.dromara.hutool.http.client.engine.AbstractClientEngine; -import org.dromara.hutool.http.proxy.HttpProxy; +import org.dromara.hutool.http.proxy.ProxyInfo; import org.dromara.hutool.http.ssl.SSLInfo; import javax.net.ssl.SSLSocketFactory; import javax.net.ssl.X509TrustManager; import java.io.IOException; import java.net.PasswordAuthentication; +import java.net.ProxySelector; import java.util.concurrent.TimeUnit; /** @@ -178,10 +179,13 @@ public class OkHttpEngine extends AbstractClientEngine { * @param config 配置 */ private static void setProxy(final OkHttpClient.Builder builder, final ClientConfig config) { - final HttpProxy proxy = config.getProxy(); - if (null != proxy) { - builder.proxy(proxy); - final PasswordAuthentication auth = proxy.getAuth(); + final ProxyInfo proxyInfo = config.getProxy(); + if (null != proxyInfo) { + final ProxySelector proxySelector = proxyInfo.getProxySelector(); + if(null != proxySelector){ + builder.proxySelector(proxySelector); + } + final PasswordAuthentication auth = proxyInfo.getAuth(); if (null != auth) { builder.proxyAuthenticator(new BasicProxyAuthenticator(auth)); } diff --git a/hutool-http/src/main/java/org/dromara/hutool/http/proxy/HttpProxy.java b/hutool-http/src/main/java/org/dromara/hutool/http/proxy/HttpProxy.java deleted file mode 100644 index 82201ecc0..000000000 --- a/hutool-http/src/main/java/org/dromara/hutool/http/proxy/HttpProxy.java +++ /dev/null @@ -1,95 +0,0 @@ -/* - * Copyright (c) 2013-2024 Hutool Team and hutool.cn - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.dromara.hutool.http.proxy; - -import java.net.InetSocketAddress; -import java.net.PasswordAuthentication; -import java.net.Proxy; - -/** - * HTTP代理,提供代理地址和代理端口的持有。 - * - * @author looly - * @since 6.0.0 - */ -public class HttpProxy extends Proxy { - - private final String host; - private final int port; - private PasswordAuthentication auth; - - /** - * 构造 - * - * @param host 域名或IP - * @param port 端口 - */ - public HttpProxy(final String host, final int port) { - super(Type.HTTP, new InetSocketAddress(host, port)); - this.host = host; - this.port = port; - } - - /** - * 获取域名或IP - * - * @return 域名或IP - */ - public String getHost() { - return host; - } - - /** - * 获取端口 - * - * @return 端口 - */ - public int getPort() { - return port; - } - - /** - * 设置代理验证信息 - * - * @param user 用户名 - * @param pass 密码 - * @return this - */ - public HttpProxy setAuth(final String user, final char[] pass) { - return setAuth(new PasswordAuthentication(user, pass)); - } - - /** - * 设置代理验证信息 - * - * @param auth {@link PasswordAuthentication} - * @return this - */ - public HttpProxy setAuth(final PasswordAuthentication auth) { - this.auth = auth; - return this; - } - - /** - * 获取代理验证信息 - * - * @return {@link PasswordAuthentication} - */ - public PasswordAuthentication getAuth() { - return this.auth; - } -} diff --git a/hutool-http/src/main/java/org/dromara/hutool/http/proxy/ProxyInfo.java b/hutool-http/src/main/java/org/dromara/hutool/http/proxy/ProxyInfo.java new file mode 100644 index 000000000..583a34f16 --- /dev/null +++ b/hutool-http/src/main/java/org/dromara/hutool/http/proxy/ProxyInfo.java @@ -0,0 +1,176 @@ +/* + * Copyright (c) 2013-2024 Hutool Team and hutool.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.dromara.hutool.http.proxy; + +import org.dromara.hutool.core.collection.CollUtil; +import org.dromara.hutool.core.collection.ListUtil; +import org.dromara.hutool.http.HttpException; + +import java.io.IOException; +import java.net.*; +import java.util.List; + +/** + * 代理信息,提供代理选择器和代理验证 + * + * @author looly + * @since 6.0.0 + */ +public class ProxyInfo { + + private String authHost; + private int authPort; + private ProxySelector proxySelector; + private PasswordAuthentication auth; + + /** + * 构造 + * + * @param host 代理地址 + * @param port 代理端口 + */ + public ProxyInfo(final String host, final int port) { + this(new ProxySelector() { + @Override + public List select(final URI uri) { + return ListUtil.of(new Proxy(Proxy.Type.HTTP, new InetSocketAddress(host, port))); + } + + @Override + public void connectFailed(final URI uri, final SocketAddress sa, final IOException ioe) { + throw new HttpException(ioe); + } + }, null); + this.authHost = host; + this.authPort = port; + } + + /** + * 构造 + * + * @param proxySelector {@link ProxySelector} + * @param auth 用户名和密码 + */ + public ProxyInfo(final ProxySelector proxySelector, final PasswordAuthentication auth) { + this.proxySelector = proxySelector; + this.auth = auth; + } + + /** + * 获取代理验证主机 + * + * @return 代理验证主机 + */ + public String getAuthHost() { + return authHost; + } + + /** + * 设置代理验证主机 + * + * @param authHost 代理验证主机 + */ + public void setAuthHost(final String authHost) { + this.authHost = authHost; + } + + /** + * 获取代理验证端口 + * + * @return 代理验证端口 + */ + public int getAuthPort() { + return authPort; + } + + /** + * 设置代理验证端口 + * + * @param authPort 代理验证端口 + */ + public void setAuthPort(final int authPort) { + this.authPort = authPort; + } + + /** + * 获取代理选择器 + * + * @return {@link ProxySelector} + */ + public ProxySelector getProxySelector() { + return proxySelector; + } + + /** + * 获取第一个代理
+ * 如果代理选择器为空,返回null + * + * @param uri {@link URI} + * @return {@link Proxy} + */ + public Proxy selectFirst(final URI uri){ + if(null != proxySelector){ + final List select = proxySelector.select(uri); + if(CollUtil.isNotEmpty(select)){ + return select.get(0); + } + } + return null; + } + + /** + * 设置代理选择器 + * + * @param proxySelector {@link ProxySelector} + * @return this + */ + public ProxyInfo setProxySelector(final ProxySelector proxySelector) { + this.proxySelector = proxySelector; + return this; + } + + /** + * 设置代理验证信息 + * + * @param user 用户名 + * @param pass 密码 + * @return this + */ + public ProxyInfo setAuth(final String user, final char[] pass) { + return setAuth(new PasswordAuthentication(user, pass)); + } + + /** + * 设置代理验证信息 + * + * @param auth {@link PasswordAuthentication} + * @return this + */ + public ProxyInfo setAuth(final PasswordAuthentication auth) { + this.auth = auth; + return this; + } + + /** + * 获取代理验证信息 + * + * @return {@link PasswordAuthentication} + */ + public PasswordAuthentication getAuth() { + return this.auth; + } +} diff --git a/hutool-http/src/test/java/org/dromara/hutool/http/DownloadTest.java b/hutool-http/src/test/java/org/dromara/hutool/http/client/DownloadTest.java similarity index 98% rename from hutool-http/src/test/java/org/dromara/hutool/http/DownloadTest.java rename to hutool-http/src/test/java/org/dromara/hutool/http/client/DownloadTest.java index 8e3ed196d..f07cca45e 100644 --- a/hutool-http/src/test/java/org/dromara/hutool/http/DownloadTest.java +++ b/hutool-http/src/test/java/org/dromara/hutool/http/client/DownloadTest.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.dromara.hutool.http; +package org.dromara.hutool.http.client; import org.dromara.hutool.core.codec.binary.Base64; import org.dromara.hutool.core.io.IORuntimeException; @@ -22,8 +22,7 @@ import org.dromara.hutool.core.io.StreamProgress; import org.dromara.hutool.core.io.file.FileUtil; import org.dromara.hutool.core.lang.Console; import org.dromara.hutool.core.util.CharsetUtil; -import org.dromara.hutool.http.client.HttpDownloader; -import org.dromara.hutool.http.client.Request; +import org.dromara.hutool.http.HttpGlobalConfig; import org.dromara.hutool.http.client.engine.ClientEngineFactory; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Disabled; diff --git a/hutool-http/src/test/java/org/dromara/hutool/http/Issue444Test.java b/hutool-http/src/test/java/org/dromara/hutool/http/client/Issue444Test.java similarity index 92% rename from hutool-http/src/test/java/org/dromara/hutool/http/Issue444Test.java rename to hutool-http/src/test/java/org/dromara/hutool/http/client/Issue444Test.java index 5522b5519..be89d7b36 100644 --- a/hutool-http/src/test/java/org/dromara/hutool/http/Issue444Test.java +++ b/hutool-http/src/test/java/org/dromara/hutool/http/client/Issue444Test.java @@ -14,10 +14,9 @@ * limitations under the License. */ -package org.dromara.hutool.http; +package org.dromara.hutool.http.client; import org.dromara.hutool.core.lang.Console; -import org.dromara.hutool.http.client.Request; import org.dromara.hutool.http.client.engine.jdk.JdkClientEngine; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; diff --git a/hutool-http/src/test/java/org/dromara/hutool/http/client/IssueIB1QHQTest.java b/hutool-http/src/test/java/org/dromara/hutool/http/client/IssueIB1QHQTest.java index efc2877ef..924f9e71f 100644 --- a/hutool-http/src/test/java/org/dromara/hutool/http/client/IssueIB1QHQTest.java +++ b/hutool-http/src/test/java/org/dromara/hutool/http/client/IssueIB1QHQTest.java @@ -3,10 +3,12 @@ package org.dromara.hutool.http.client; import org.dromara.hutool.core.lang.Console; import org.dromara.hutool.http.client.engine.ClientEngineFactory; import org.dromara.hutool.http.meta.Method; +import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; public class IssueIB1QHQTest { @Test + @Disabled void requestByOkHttpTest() { for (int i = 0; i < 3; i++) { String response = ClientEngineFactory.createEngine("OkHttp") diff --git a/hutool-http/src/test/java/org/dromara/hutool/http/RestTest.java b/hutool-http/src/test/java/org/dromara/hutool/http/client/RestTest.java similarity index 96% rename from hutool-http/src/test/java/org/dromara/hutool/http/RestTest.java rename to hutool-http/src/test/java/org/dromara/hutool/http/client/RestTest.java index 6b4e5ca67..f1d6c87bd 100644 --- a/hutool-http/src/test/java/org/dromara/hutool/http/RestTest.java +++ b/hutool-http/src/test/java/org/dromara/hutool/http/client/RestTest.java @@ -14,10 +14,10 @@ * limitations under the License. */ -package org.dromara.hutool.http; +package org.dromara.hutool.http.client; import org.dromara.hutool.core.lang.Console; -import org.dromara.hutool.http.client.Request; +import org.dromara.hutool.http.HttpUtil; import org.dromara.hutool.http.meta.HeaderName; import org.dromara.hutool.http.meta.Method; import org.dromara.hutool.json.JSONUtil; diff --git a/hutool-http/src/test/java/org/dromara/hutool/http/HtmlUtilTest.java b/hutool-http/src/test/java/org/dromara/hutool/http/html/HtmlUtilTest.java similarity index 99% rename from hutool-http/src/test/java/org/dromara/hutool/http/HtmlUtilTest.java rename to hutool-http/src/test/java/org/dromara/hutool/http/html/HtmlUtilTest.java index 4ab44539b..f5bf32653 100644 --- a/hutool-http/src/test/java/org/dromara/hutool/http/HtmlUtilTest.java +++ b/hutool-http/src/test/java/org/dromara/hutool/http/html/HtmlUtilTest.java @@ -14,10 +14,9 @@ * limitations under the License. */ -package org.dromara.hutool.http; +package org.dromara.hutool.http.html; import org.dromara.hutool.core.regex.ReUtil; -import org.dromara.hutool.http.html.HtmlUtil; import org.dromara.hutool.http.meta.ContentTypeUtil; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/hutool-http/src/test/java/org/dromara/hutool/http/ContentTypeTest.java b/hutool-http/src/test/java/org/dromara/hutool/http/meta/ContentTypeTest.java similarity index 93% rename from hutool-http/src/test/java/org/dromara/hutool/http/ContentTypeTest.java rename to hutool-http/src/test/java/org/dromara/hutool/http/meta/ContentTypeTest.java index 1dfe5c888..ebe3875dc 100644 --- a/hutool-http/src/test/java/org/dromara/hutool/http/ContentTypeTest.java +++ b/hutool-http/src/test/java/org/dromara/hutool/http/meta/ContentTypeTest.java @@ -14,10 +14,9 @@ * limitations under the License. */ -package org.dromara.hutool.http; +package org.dromara.hutool.http.meta; import org.dromara.hutool.core.util.CharsetUtil; -import org.dromara.hutool.http.meta.ContentType; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertEquals;