2012-10-04 143 views
22

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

我可能收到这可能是

http://www.example1.com

http://www.example1.com/

一个URL字符串,然后我会得到这可能与/api/v1/status.xml启动资源路径,或者它会像api/v1/status.xml我正在看URL类,我可以处理第一部分,即获取hostURL以使其成为HTTPS或HTTP请求。问题是追加资源路径。如果第一个字母是/或者不是我必须手动检查。我想知道这个功能是否已经在某个类中。

+0

这是类似于你在找什么?这可能会有所帮助:https://stackoverflow.com/questions/1861620/is-there-a-java-package-to-handle-building-urls – MikeB

回答

35
URL url = new URL(yourUrl, "/api/v1/status.xml"); 

根据此构造只是追加任何资源域的结束,所以你会想创建2个网址的javadoc:

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

+1

如果URL url = new URL(domain +“files/resource .xml“);'? MalformedURL? ...如果'domain = www.example.com /'和'新的URL(domain +“/files/resources.xml”);'...再次格式不正确 –

+0

我多次看到应用程序首先检查if(domain.endsWith(“/”)){domain = domain.substring(0,domain.length() - 1);}'对于所有其他问题,抓住MalformedURLException并从那里处理。 –

+0

因为协议不是“http”,我得到MalformedURLException。使用java.net.URI的OMG/facepalm –