2012-06-20 35 views
14

我正在編寫一段代碼,通過HTTPS將文件從設備上傳到雲端。java.lang.ClassCastException:libcore.net.http.HttpURLConnectionImpl無法轉換爲javax.net.ssl.HttpsURLConnection

相關片段:

HttpsURLConnection conn = null; 
URL url = new URL(urlstring); 
conn = (HttpsURLConnection) url.openConnection(); // exception here. 

但中投將無法編譯:

06-20 15:58:05.311: E/FNF(30286): java.lang.ClassCastException: libcore.net.http.HttpURLConnectionImpl cannot be cast to javax.net.ssl.HttpsURLConnection 

我發現這個類似的問題:Using java class HttpsURLConnection,但我不導入來自太陽包東西。

我進口:

​​

我一直在抓我的頭這一塊有一段時間了,有什麼建議?

+0

這是一個'HttpURLConnection',你不能將它轉換爲'HttpsURLConnection'。這與您所鏈接的問題相同。你只是使用另一個不正確的類 –

回答

63

您的urlString必須以https://開頭,而不是http://,因爲您可以將其投射到HttpsURLConnection

+1

作爲註釋,如果你的urlString以http://開頭,改變HttpURLConnection的HttpsURLConnection解決了錯誤:) –

+0

@ MatiasElorriaga-你的評論更有用的答案...謝謝。 – offset

+0

我已將java.net.HttpURLConnection用於未固化的URL,但Google在Play商店的發佈應用程序期間不接受HttpURLConnection實現。 Play商店提醒消息 - 「您的應用正在使用HostnameVerifier接口的不安全實現。」請提供任何解決方案? –

0

url.openConnection();似乎要返回libcore.net.http.HttpURLConnectionImpl類型的對象,而您聲明瞭「conn」對象的類型爲import javax.net.ssl.HttpsURLConnection;。您需要整理導入和使用的對象。也許你錯過了你正在學習的教程。

0

簡單刪除urlConnection.setDoOutput(true);

它將很好地工作。

相關問題