From 8c0fb77421c79e58a8800dadd33f6a320d4842c2 Mon Sep 17 00:00:00 2001 From: Looly Date: Tue, 27 Dec 2022 17:55:37 +0800 Subject: [PATCH] fix bug --- .../java/cn/hutool/core/net/url/UrlBuilder.java | 8 +++++--- .../java/cn/hutool/core/net/UrlBuilderTest.java | 15 +++++++++++++++ 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/hutool-core/src/main/java/cn/hutool/core/net/url/UrlBuilder.java b/hutool-core/src/main/java/cn/hutool/core/net/url/UrlBuilder.java index 0df307b3d..53b79e81f 100755 --- a/hutool-core/src/main/java/cn/hutool/core/net/url/UrlBuilder.java +++ b/hutool-core/src/main/java/cn/hutool/core/net/url/UrlBuilder.java @@ -107,10 +107,12 @@ public final class UrlBuilder implements Builder { public static UrlBuilder ofHttp(String httpUrl, final Charset charset) { Assert.notBlank(httpUrl, "Http url must be not blank!"); - final int sepIndex = httpUrl.indexOf("://"); - if (sepIndex < 0) { - httpUrl = "http://" + httpUrl.trim(); + httpUrl = StrUtil.trimStart(httpUrl); + // issue#I66CIR + if(false == StrUtil.startWithAnyIgnoreCase(httpUrl, "http://", "https://")){ + httpUrl = "http://" + httpUrl; } + return of(httpUrl, charset); } diff --git a/hutool-core/src/test/java/cn/hutool/core/net/UrlBuilderTest.java b/hutool-core/src/test/java/cn/hutool/core/net/UrlBuilderTest.java index 15d824c8d..43fcc70e6 100644 --- a/hutool-core/src/test/java/cn/hutool/core/net/UrlBuilderTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/net/UrlBuilderTest.java @@ -479,4 +479,19 @@ public class UrlBuilderTest { UrlBuilder.of().addPath("//"); UrlBuilder.of().addPath("//a"); } + + @Test + public void ofHttpTest() { + UrlBuilder ofHttp = UrlBuilder.ofHttp("http://hutool.cn"); + Assert.assertEquals("http://hutool.cn", ofHttp.toString()); + + ofHttp = UrlBuilder.ofHttp("https://hutool.cn"); + Assert.assertEquals("https://hutool.cn", ofHttp.toString()); + + ofHttp = UrlBuilder.ofHttp("hutool.cn"); + Assert.assertEquals("http://hutool.cn", ofHttp.toString()); + + ofHttp = UrlBuilder.ofHttp("hutool.cn?old=http://aaa"); + Assert.assertEquals("http://hutool.cn?old=http://aaa", ofHttp.toString()); + } }