从字符串创建 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的主要内容,如果未能解决你的问题,请参考以下文章