2012-06-22 154 views
0
URL oauth = new URL(URL); 
URLConnection oauth_connection = oauth.openConnection(); 

BufferedReader in = new BufferedReader(new InputStreamReader(
      oauth_connection.getInputStream())); 

String inputLine = ""; 

String line; 

//System.out.println(in.readLine()); 
while((line = in.readLine()) != null) 
    inputLine += line; 

in.close(); 

BufferedReader行拋出異常:發送HTTP請求到服務器都異常時有發生

異常線程 「main」 javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException: PKIX路徑構建失敗:sun.security.provider.certpath.SunCertPathBuilderException:無法找到有效的證書路徑,請求目標 at sun.security.ssl.Alerts.getSSLException(Unknown Source) at sun.security.ssl.SSLSocketImpl.fatal (Unknown Source) at sun.security.ssl.Handshaker.fatalSE(Unknown Source) 在sun.security.ssl.Handshaker.fatalSE(未知來源) 在sun.security.ssl.ClientHandshaker.serverCertificate(未知來源) 在sun.security.ssl.ClientHandshaker.processMessage(未知來源) 在sun.security .ssl.Handshaker.processLoop(Unknown Source) at sun.security.ssl.Handshaker.process_record(Unknown Source) at sun.security.ssl.SSLSocketImpl.readRecord(Unknown Source) at sun.security.ssl.SSLSocketImpl。 performInitialHandshake(未知來源) 在sun.security.ssl.SSLSocketImpl.startHandshake(未知來源) 在sun.security.ssl.SSLSocketImpl.startHandshake(未知來源) 在sun.net.www.protocol.https.HttpsClient.afterConnect (未知來源) at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(未知來源) at sun.net.www.protocol.http.HttpURLConnection.getInputStream(未知來源) at sun.net.www.protocol.https。 HttpsURLConnectionImpl.getInputStream(Unknown Source)

+0

但一半的時候,它給結果返回成功 –

回答

1

您可能要麼有自簽名證書,要麼鏈接的某些部分不可信。

您可以將證書導入您的信賴店看到Digital Certificate: How to import .cer file in to .truststore file using?

或者你可以忽略的問題,因爲在這個問題Ignore certificate errors when requesting a URL in Java

+0

但有一半時間成功返回 –

+0

也許您正在碰到一個負載均衡器,該負載均衡器依賴於證書的服務器,而不是擁有自己的服務器,並且平衡器後面的服務器之一出現故障或者您還需要在信任庫中安裝不同的證書? – digitaljoel

+0

但關閉一臺服務器後,仍然有這個問題,一半和一半。 –

相關問題