2012-10-04 187 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 –