2012-02-23 67 views
2

我收到此錯誤:如何解決java.net.MalformedURLException?

java.net.MalformedURLException: Protocol not found[java.lang.StringBuilder] 

當得到執行以下行:

url = new URL(urlString.toString()); 

urlString存儲以下值:

http://maps.google.com/maps?f=d&hl=en&saddr=25.04202,121.534761&daddr=25.05202,121.554761&ie=UTF8&0&om=0&output=kml 

是什麼原因導致這種異常?

+0

嘗試登錄的urlString.toString()值作爲解​​析器抱怨說,它以「java.lang.StringBuilder」的值開頭 – MahdeTo 2012-02-23 07:26:00

回答

6

機會是從

url = new URL(urlString); 

更改爲

url = new URL(urlString.toString()); 

後沒有清理應登錄傳遞到URL的構造函數的參數值。 這不是你認爲應該的。

urlString會以java.lang.StringBuilder @ 的形式打印一個值,因此如果您嘗試從中創建一個url,就會拋出異常。

但是使用String將打印由stringbuilder構建的內容字符串的值。

+0

是的,當我打印時顯示url = [Ljava.lang.StringBuilder; @ 412b0fb0,但是當我在調試時檢查它的值時顯示正確的URL。通過將參數的值記錄到URL的構造函數,你的意思是什麼?我還應該做什麼? – ManJan 2012-02-23 08:04:03

+0

我的意思是將參數*傳遞給URL的構造函數的值。你清理了這個項目嗎?當然,問題來自這裏。 – Snicolas 2012-02-23 11:20:16

+0

非常感謝你Snicolas ..我找到了問題所在。我正在使用AsyncTask,並沒有正確傳遞參數。現在解決了:) – ManJan 2012-02-24 01:40:22

0

如果您的網絡防火牆阻止該URL,您也可以獲得此例外。

0

與放置在服務器instedof HTML

3

這裏php文件地址替換URL與異常處理的例子...

String urlString = "https://www.example.com/"; 
URL url = null; 

// handle Exception 
try { 
    url = new URL(urlString); 
} catch (MalformedURLException e) { 
    System.out.println("The URL is not valid."); 
    System.out.println(e.getMessage()); 
} 

// print 
if (url != null) { 
    System.out.println(url.toString()); 
} 
相關問題