<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"><span style="font-size:18px;">今天在寫一個app時,當實現從網絡上獲取圖片資源,發送HTTPURLConnection的時候拋出這樣的異常:</span></span>
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"><span style="font-size:18px;">?java.lang.ClassCastException: com.android.okhttp.internal.http.HttpURLConnectionImpl cannot be cast to </span></span>
<span style="font-size:18px; font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">javax.net.ssl.HttpsURLConnection;</span>
經過一番上網搜索后總算發現了問題在哪(PS:看過之后估計你想撞墻的心都有了。。。):
先來說下我的問題吧。
問題描述如下:
之所以會出現那樣的異常就在于下面這段代碼的錯誤
URL url = new URL(urlString);
HttpsURLConnection connection= (HttpsURLConnection) url.openConnection();
我請求的圖片的網址 開頭是Http://,而卻用
HttpsURLConnection類型來指定網絡連接的類型,肯定會拋出異常。。。
問題原因:你的urlString必須以這種形式開頭:“
http://”
?而不是“https://”
?這樣你才能匹配HttpURLConnection
.
解決辦法:將HttpsURLConnection改為HttpURLConnection即可;
解釋:
SSL(Secure Sockets Layer 安全套接層)
HTTPS(Secure Hypertext Transfer Protocol)安全超文本傳輸協議
這兩者是相互對應的。