java.lang.ClassCastException:libcore.net.http.HttpURLConnectionImpl不能转换为javax.net.ssl.HttpsURLConnection

我正在编写一些代码,通过HTTPS将文件从设备上传到云端。

相关片段:

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 

我发现这个类似的问题: 使用Java类HttpsURLConnection ,但我不是从sun包中导入任何东西。

我的import:

 import java.io.DataOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.net.URL; import android.net.Uri; import javax.net.ssl.HttpsURLConnection; import android.util.Log; import edu.mit.media.funf.storage.RemoteFileArchive; import edu.mit.media.funf.util.LogUtil; 

有一段时间我一直在挠头,有什么build议吗?

Solutions Collecting From Web of "java.lang.ClassCastException:libcore.net.http.HttpURLConnectionImpl不能转换为javax.net.ssl.HttpsURLConnection"

您的urlString必须以https://开头,而不是http://您可以将其转换为HttpsURLConnection

url.openConnection(); 似乎正在返回一个types为libcore.net.http.HttpURLConnectionImpl的对象,而您声明了您的“conn”对象的types为import javax.net.ssl.HttpsURLConnection; 。 您需要整理导入和使用的对象。 也许你错过了下面的教程。

简单的删除urlConnection.setDoOutput(true);

它会正常工作。