相关疑难解决方法(0)

从Java中的相对URL构建绝对URL

我无法从相对URL构建绝对URL而无需使用String hackery ...

特定

http://localhost:8080/myWebApp/someServlet
Run Code Online (Sandbox Code Playgroud)

方法内部:

   public void handleRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
Run Code Online (Sandbox Code Playgroud)

什么是最"正确"的建设方式:

http://localhost:8080/myWebApp/someImage.jpg
Run Code Online (Sandbox Code Playgroud)

(注意,必须是绝对的,而不是相对的)

目前,我是通过构建字符串来实现的,但必须有更好的方法.

我查看了新URI/URL的各种组合,我最终得到了

http://localhost:8080/someImage.jpg
Run Code Online (Sandbox Code Playgroud)

非常感谢

java url relative-url

16
推荐指数
1
解决办法
2万
查看次数

如何使用Java从相对URL构建绝对URL?

我有一个相对的url字符串,知道主机和协议.如何构建绝对url字符串?

好像很容易?是的,一开始看,但直到逃脱的角色来.我必须从302代码http(s)响应位置标头构建绝对URL.

让我们考虑一个例子

protocol: http
host: example.com
location: /path/path?param1=param1Data&param2= " 
Run Code Online (Sandbox Code Playgroud)

首先,我尝试构建url字符串,如:

Sting urlString = protocol+host+location
Run Code Online (Sandbox Code Playgroud)

URL类的构造函数不会转义空格和双引号:

new URL(urlString)
Run Code Online (Sandbox Code Playgroud)

URI类的构造函数失败,但异常:

new URI(urlString)
Run Code Online (Sandbox Code Playgroud)

URI.resolve 方法也失败,异常

然后我发现URI可以在查询字符串中转义params,但只有很少的构造函数,例如:

URI uri = new URI("http", "example.com", 
    "/path/path", "param1=param1Data&param2= \"", null);
Run Code Online (Sandbox Code Playgroud)

这个构造函数需要路径和查询是一个单独的参数,但我有一个相对的URL,它不会被路径和查询部分拆分.

我可以考虑检查相对URL是否包含"?" 问题标志,并认为它之前的一切都是路径,并且它之后的一切都是查询,但如果相对网址不包含路径,但只查询,并且查询包含"?",该怎么办?标志?然后这将无效,因为部分查询将被视为路径.

现在我无法从相对URL建立绝对URL.

这些接受的答案似乎错了:

考虑到相对于url与主机和某个路径部分相关的url时的情况可能会很好:

最初的网址http://example.com/...some路径...相对/home?...query here ...

获得java核心解决方案会很棒,尽管它仍然可以使用一个好的lib.

java url http

2
推荐指数
1
解决办法
380
查看次数

标签 统计

java ×2

url ×2

http ×1

relative-url ×1