带HttpsURLConnection的ClassCastException

时间:2010-08-30 20:42:30

标签: android ssl

我尝试用:

建立一个HttpsURLConnection
HttpsURLConnection conn = (HttpsURLConnection) new URL(url).openConnection()

但我得到一个例外:

E/JavaBinder(  901): java.lang.ClassCastException: org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnection

但我无法找到,为什么。网络上到处都是同样的例子。

2 个答案:

答案 0 :(得分:4)

ClassCastException告诉您返回的对象不是HttpsUrlConnection。你正在做的演员本身就不安全,相反你应该这样:

URLConnection conn = new URL(url).openConnection();
if (conn instanceof HttpsURLConnection) {
  // do stuff
}
else {
  // error?
}

至于它没有给你一个Https版本的原因,你提供的是什么网址?我的猜测是你给它http:..而不是https:...

答案 1 :(得分:3)

什么是网址?看起来您正在使用简单的“http:”方案URL,但期望进行HTTPS连接。