簡體   English   中英

獲取請求handshake_faliure:javax.net.ssl.SSLHandshakeException

[英]Get request handshake_faliure:javax.net.ssl.SSLHandshakeException

將獲取請求發送到www.sunnyportal.com時,錯誤代碼出現在控制台中,如下所示:

    javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)
at sun.security.ssl.Alerts.getSSLException(Alerts.java:154)
at sun.security.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:1979)
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1086)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1332)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1359)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1343)
at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:563)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1301)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254)
at personal.Project.GetUrl.getReq(GetUrl.java:25)
at personal.Project.GetUrl.main(GetUrl.java:34)

我沒有運氣就嘗試了以下頁面:

+ 收到致命警報:通過SSLHandshakeException的handshake_failure

+ 如何解決javax.net.ssl.SSLHandshakeException錯誤?

這是我的代碼:

package personal.Project;

    import java.io.IOException;

    import java.io.InputStream;

    import java.net.MalformedURLException;

    import java.net.URL;

    import java.net.URLConnection;

    import java.net.URLEncoder;

    public class GetUrl {

        private String url = "https://www.sunnyportal.com/Templates/ChartValues.aspx";

private String charset = "UTF-8";  // Or in Java 7 and later, use the constant: java.nio.charset.StandardCharsets.UTF_8.name()
private String login = "<>";
private String password = "<>";

public String getReq() throws MalformedURLException, IOException
{
    String query = String.format("login=%s&password=%s", 

            URLEncoder.encode(login, charset), 
            URLEncoder.encode(password, charset));

        URLConnection c = new URL(url + "?" + query).openConnection();
        c.setRequestProperty("Accept-Charset", charset);
        InputStream response = c.getInputStream();  

        return response.toString();
}
public static void main (String args[])
{
    GetUrl data = new GetUrl();
    String getString = null;
    try {
        getString = data.getReq();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        System.exit(1);
    }

    System.out.println( getString );
}

}

希望對這個問題有幫助,在此先感謝!

根據https://www.ssllabs.com/ssltest/analyze.html?d=sunnyportal.com ,該服務器僅協商一個密碼套件TLS_RSA_WITH_AES_256_CBC_SHA,該密碼套件使用具有256位密鑰的AES。

如果使用Oracle Java使用128位以上的任何對稱密碼(包括AES 256),則必須下載並安裝適用於您版本的JCE無限強度管轄權策略文件。 對於當前受支持的版本8,在常規下載頁面底部附近http://www.oracle.com/technetwork/java/javase/downloads/index.html,它鏈接到http://www.oracle.com/ technetwork / java / javase / downloads / jce8-download-2133166.html 對於舊版本,搜索找到http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.htmlhttp://www.oracle.com/technetwork/java/javase/downloads /jce-6-download-429243.html

PS: 連接到https站點時SSLHandshakeException偽裝了,盡管我不確定您是否應該找到它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM