繁体   English   中英

使用java.net.URL在Java中构造错误的URL?

[英]Construct incorrect URLs in java with java.net.URL?

使用Oracle Java 1.8.0_25

我有以下构造

URL url = new URL(new URL(new URL("http://localhost:4567/"), "123"), "asd")

根据https://docs.oracle.com/javase/tutorial/networking/urls/creatingUrls.html中的文档
它应该产生http://localhost:4567/123/asd的URL
但是它会产生http://localhost:4567/asd

文档说明

此代码段使用URL构造函数,该构造函数使您可以从另一个URL对象(基础)和相对URL规范中创建URL对象。 该构造函数的一般形式为:

URL(URL baseURL, String relativeURL)
第一个参数是一个URL对象,它指定新URL的基础。 第二个参数是一个String,它指定相对于基础的其余资源名称。 如果baseURL为null,则此构造方法将relativeURL视为绝对URL规范。 相反,如果relativeURL是绝对URL规范,则构造函数将忽略baseURL。

这是正确的行为吗?

使用此构造函数阅读文档后:

URL(URL baseURL, String relativeURL)

因此,您可以执行以下操作:

URL baseUrl = new URL("http://localhost:4567/");
URL url = new URL(baseUrl, "123/asd")

或者,您可以单线执行此操作:

URL url = new URL(new URL(new URL("http://localhost:4567/"), "123/"), "asd");

产量

HTTP://本地主机:123分之4567/ ASD

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM