【问题标题】:HttpURLConnection RuntimeExceptionHttpURLConnection 运行时异常
【发布时间】:2012-03-02 22:37:00
【问题描述】:

我遇到了一个奇怪的问题。我正在使用HttpURLConnection,当我使用conn.readInputStream() 时,我得到一个RuntimeException。它并不总是可复制的,但用户已经报告了这个堆栈跟踪。在开发中我从来没有遇到过这个问题,所以我个人不知道是什么导致了这个错误。请对此stacktracee提出任何建议。

java.lang.RuntimeException: java.util.NoSuchElementException
at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.verifyCertificateChain(OpenSSLSocketImpl.java:692)
at org.apache.harmony.xnet.provider.jsse.NativeCrypto.SSL_do_handshake(Native Method)
at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:485)
at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:323)
at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnection.setupSecureSocket(HttpConnection.java:167)
at org.apache.harmony.luni.internal.net.www.protocol.https.HttpsURLConnectionImpl$HttpsEngine.makeSslConnection(HttpsURLConnectionImpl.java:479)
at org.apache.harmony.luni.internal.net.www.protocol.https.HttpsURLConnectionImpl$HttpsEngine.makeConnection(HttpsURLConnectionImpl.java:419)
at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl … veResponse(HttpURLConnectionImpl.java:1038)
at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:523)
at org.apache.harmony.luni.internal.net.www.protocol.https.HttpsURLConnectionIm … nputStream(HttpsURLConnectionImpl.java:283)
at com.facebook.android.Util.openUrl(Util.java:245)
at com.facebook.android.Facebook.request(Facebook.java:730)
at com.facebook.android.AsyncFacebookRunner$2.run(AsyncFacebookRunner.java:313)
Caused by: java.util.NoSuchElementException
at java.util.LinkedList$LinkIterator.next(LinkedList.java:122)
at org.apache.harmony.security.x501.Name.getName0(Name.java:195)
at org.apache.harmony.security.x501.Name.getName(Name.java:135)
at javax.security.auth.x500.X500Principal.getCanonicalName(X500Principal.java:155)
at javax.security.auth.x500.X500Principal.hashCode(X500Principal.java:286)
at java.util.HashMap.get(HashMap.java:302)
at org.apache.harmony.xnet.provider.jsse.IndexedPKIXParameters.isTrustAnchor(IndexedPKIXParameters.java:113)
at org.apache.harmony.xnet.provider.jsse.TrustManagerImpl.cleanupCertChain(TrustManagerImpl.java:194)
at org.apache.harmony.xnet.provider.jsse.TrustManagerImpl.checkTrusted(TrustManagerImpl.java:144)
at org.apache.harmony.xnet.provider.jsse.TrustManagerImpl.checkServerTrusted(TrustManagerImpl.java:132)
at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.verifyCertificateChain(OpenSSLSocketImpl.java:681)
... 12 more

【问题讨论】:

    标签: android httpurlconnection


    【解决方案1】:

    此问题是由于您正在从应用创建 https 连接,并且要打开安全连接,您需要在设备上安装必要的证书。

    【讨论】:

    • 我是怎么做到的?我的意思是我可以在哪里获得证书。
    【解决方案2】:

    可能有点晚,但如果您尝试获取的资源不存在,则可能会发生这种情况。 例如,您尝试获取 id 为 500 (/user/500) 的用户,但该用户在您调用的服务器上不存在。

    【讨论】:

      猜你喜欢
      • 2012-05-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-03
      • 2014-02-26
      • 2013-04-06
      • 2014-01-14
      相关资源
      最近更新 更多