将相对 URL 附加到 java.net.URL

新手上路,请多包涵

如果我有一个 java.net.URL 对象,指向让我们说

http://example.com/myItemshttp://example.com/myItems/

在某处是否有一些帮助程序可以将一些相对 URL 附加到此?例如附加 ./myItemIdmyItemId 得到: http://example.com/myItems/myItemId

原文由 fulmicoton 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 362
2 个回答

URL 有一个采用基础 URLString 规范的 构造函数

或者, java.net.URI 更符合标准,并且有一个 resolve 方法来做同样的事情。使用 URI 从你的 URL 创建一个 --- URL.toURI

原文由 Andrew Duffy 发布,翻译遵循 CC BY-SA 4.0 许可协议

这个不需要任何额外的库或代码并提供所需的结果:

 //import java.net.URL;
URL url1 = new URL("http://petstore.swagger.wordnik.com/api/api-docs?foo=1&bar=baz");
URL url2 = new URL(url1.getProtocol(), url1.getHost(), url1.getPort(), url1.getPath() + "/pet" + "?" + url1.getQuery(), null);
System.out.println(url1);
System.out.println(url2);

这打印:

 http://petstore.swagger.wordnik.com/api/api-docs?foo=1&bar=baz
http://petstore.swagger.wordnik.com/api/api-docs/pet?foo=1&bar=baz

只有在主机之后没有路径时,接受的答案才有效(恕我直言,接受的答案是错误的)

原文由 Christoph Henkelmann 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题