在Java中,我試圖驗證URL是否存在。我通過創建一個URL對象來完成此操作,然後調用URL.openConnection,然後調用URLConnection.connect(),然後調用URL.openStream()。這些URL都沒有引發異常:「http://」,這是沒有意義的。檢查URL是否存在(方法不適用於「http://」字符串)
我需要的方法是獨立於協議。
在Java中,我試圖驗證URL是否存在。我通過創建一個URL對象來完成此操作,然後調用URL.openConnection,然後調用URLConnection.connect(),然後調用URL.openStream()。這些URL都沒有引發異常:「http://」,這是沒有意義的。檢查URL是否存在(方法不適用於「http://」字符串)
我需要的方法是獨立於協議。
得到響應代碼:
URL url = new URL("http://");
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
int rc = conn.getResponseCode();
conn.disconnect();
如果沒有拋出異常,URL存在。這一扔
Exception in thread "main" java.lang.RuntimeException: java.lang.IllegalArgumentException: protocol = http host = null
對我來說。
如果您試圖檢查url是否有效,然後執行請求,您可以使用commons驗證程序(http://commons.apache.org/validator/),以便您可以執行openConnection()以防萬一url真的有效。
文檔和示例在這裏:http://commons.apache.org/validator/apidocs/org/apache/commons/validator/UrlValidator.html
有沒有辦法做到這一點,而不使用庫?只是java。 – Anthony
'http:\\'是一個無效的協議規範。 'http://'是引用它的正確方法。 (請注意**正向**斜槓,而不是您使用的**反斜槓**) –
您的意思是:'http://是否(正斜槓)? –
對不起,是的,我解決了它 – Anthony