2012-02-10 2 views
1

J'ai un problème étrange. J'utilise HttpURLConnection et quand je conn.readInputStream(), j'obtiens un RuntimeException. Ce n'est pas toujours réplicable, mais les utilisateurs ont signalé cette pile. En développement, je n'ai jamais été confronté à ce problème, donc personnellement, je ne sais pas ce qui a causé l'erreur. S'il vous plaît donner des suggestions sur cette stacktracee.HttpURLConnection RuntimeException

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 

Répondre

3

Ce problème est dû à vous créez une connexion https à partir de votre application, et d'ouvrir une connexion sécurisée, vous devez installer les certificats nécessaires sur votre appareil.

+0

Comment me faire ça? Je veux dire où je peux obtenir les certificats. – fdmirza

0

Probablement un peu en retard, mais cela peut arriver si la ressource que vous essayez d'obtenir n'existe pas. Par exemple, vous essayez d'obtenir un utilisateur avec l'ID 500 (/ user/500) mais celui-ci n'existe pas sur le serveur que vous appelez.

Questions connexes