从字符串创建 URL

Posted

技术标签:

【中文标题】从字符串创建 URL【英文标题】:Create URL from a String 【发布时间】:2012-09-25 16:35:01 【问题描述】:

这是一个非常基本的问题。但是我无法在 Java 文档中找到答案,也无法对其进行测试,因为我不知道这种方法是否存在。

我可能会收到一个 URL 字符串

http://www.example1.com

http://www.example1.com/

然后我将获得可能以/api/v1/status.xml 开头的资源路径,或者类似于api/v1/status.xml

我正在查看 URL 类,我可以处理第一部分,即获取 hostURL 以使其成为 HTTPS 或 HTTP 请求。问题是附加资源路径。如果第一个字母是/,我必须手动检查它。我想知道这个功能是否已经在某个类中。

【问题讨论】:

这与您正在寻找的相似吗?可能会有所帮助:***.com/questions/1861620/… 【参考方案1】:
URL url = new URL(yourUrl, "/api/v1/status.xml");

根据 javadocs,此构造函数只是将任何资源附加到域的末尾,因此您需要创建 2 个 url:

URL domain = new URL("http://example.com");
URL url = new URL(domain + "/files/resource.xml");

来源:http://docs.oracle.com/javase/6/docs/api/java/net/URL.html

【讨论】:

如果URL url = new URL(domain + "files/resource.xml"); 怎么办?格式错误的网址? ... 如果 domain=www.example.com/new URL (domain + "/files/resources.xml"); ... 再次出现格式错误会怎样 我见过很多次应用程序首先检查 URL 字符串中的 if (domain.endsWith("/")) domain = domain.substring(0, domain.length()-1); 对于所有其他问题,捕获 MalformedURLException 并从那里处理。 我收到 MalformedURLException 只是因为协议不是“http”。天哪 /facepalm 使用 java.net.URI 是更好的方法

以上是关于从字符串创建 URL的主要内容,如果未能解决你的问题,请参考以下文章

Spring MVC 控制器工作但未创建指定的响应 URL,它正在从请求映射字符串创建 url

JS - 从表单答案创建重定向 URL 字符串

如何从字符串创建 SEO 友好的破折号分隔 url?

如何从包含空格的字符串创建 NSURL?

在JavaScript中从头开始创建空URL对象

从 .NET 中的字符串获取 URL 参数