From f5d68a0360471d758e34ad07a23d7fcea0c22327 Mon Sep 17 00:00:00 2001 From: Looly Date: Thu, 13 Oct 2022 17:41:12 +0800 Subject: [PATCH] add methods --- .../java/cn/hutool/core/net/url/UrlBuilder.java | 17 ++++++++++++++++- .../java/cn/hutool/core/net/UrlBuilderTest.java | 13 +++++++++---- 2 files changed, 25 insertions(+), 5 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 2e2ab9193..0df307b3d 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 @@ -1,7 +1,7 @@ package cn.hutool.core.net.url; -import cn.hutool.core.lang.builder.Builder; import cn.hutool.core.lang.Assert; +import cn.hutool.core.lang.builder.Builder; import cn.hutool.core.text.StrUtil; import cn.hutool.core.util.CharsetUtil; @@ -280,6 +280,21 @@ public final class UrlBuilder implements Builder { return port; } + /** + * 获取端口,如果未自定义返回协议默认端口 + * + * @return 端口 + * @since 5.8.9 + */ + public int getPortWithDefault() { + int port = getPort(); + if (port <= 0) { + port = toURL().getDefaultPort(); + return port; + } + return port; + } + /** * 设置端口,默认-1 * 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 e8f093228..765b26917 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 @@ -16,8 +16,11 @@ public class UrlBuilderTest { @Test public void buildTest() { - final String buildUrl = UrlBuilder.of().setHost("www.hutool.cn").build(); + final UrlBuilder builder = UrlBuilder.of(); + final String buildUrl = builder.setHost("www.hutool.cn").build(); + Assert.assertEquals("http://www.hutool.cn/", buildUrl); + Assert.assertEquals(buildUrl, 80, builder.getPortWithDefault()); } @Test @@ -26,9 +29,11 @@ public class UrlBuilderTest { String buildUrl = UrlBuilder.of().setScheme("http").setHost("192.168.1.1").setPort(8080).setWithEndTag(false).build(); Assert.assertEquals("http://192.168.1.1:8080", buildUrl); - buildUrl = UrlBuilder.of().setScheme("http").setHost("192.168.1.1").setPort(8080).addQuery("url", "http://192.168.1.1/test/1") + final UrlBuilder urlBuilder = UrlBuilder.of(); + buildUrl = urlBuilder.setScheme("http").setHost("192.168.1.1").setPort(8080).addQuery("url", "http://192.168.1.1/test/1") .setWithEndTag(false).build(); Assert.assertEquals("http://192.168.1.1:8080?url=http://192.168.1.1/test/1", buildUrl); + Assert.assertEquals(buildUrl, 8080, urlBuilder.getPortWithDefault()); } @Test @@ -459,7 +464,7 @@ public class UrlBuilderTest { } @Test - public void getAuthorityTest(){ + public void getAuthorityTest() { final UrlBuilder builder = UrlBuilder.ofHttp("127.0.0.1:8080") .addQuery("param[0].field", "编码"); @@ -467,7 +472,7 @@ public class UrlBuilderTest { } @Test - public void addPathTest(){ + public void addPathTest() { //https://gitee.com/dromara/hutool/issues/I5O4ML UrlBuilder.of().addPath(""); UrlBuilder.of().addPath("/");