12

以下のコードが失敗することもあれば、うまくいくこともあります。私はJava8を使用しています。サーバー側の問題ですか?

スレッド「メイン」での例外 javax.net.ssl.SSLException: サポートされていないレコード バージョン Unknown-0.0.

編集: JDK8 から JDK7 にダウングレードすると、動作します。私が見つけた唯一の解決策は機能します。

public static void main(String[] args) throws Exception {
    URL u = new URL("https://c********.web.cddbp.net/webapi/xml/1.0/");
    HttpURLConnection connection = (HttpURLConnection) u.openConnection();
    connection.setDoOutput(true);
    connection.setDoInput(true);
    connection.setInstanceFollowRedirects(false);
    connection.setRequestMethod("POST");
    connection.setRequestProperty("Content-Type", "text/plain");
    connection.setRequestProperty("charset", "utf-8");
    connection.setRequestProperty("Content-Length", "" + 140);
    connection.setUseCaches(false);
    DataOutputStream wr = new DataOutputStream(connection.getOutputStream());
}
4

5 に答える 5

0

スタックトレースによると、 RecordVersion Unknow-0.0 はここから生成されます =>ここから参照されます=> InputRecord.readV3Record で呼び出されます

ほとんどの場合、これら 2 つの値は 0 であってはなりません。これが発生する理由は、おそらくハンドシェーク中のサーバーからの応答が間違っているためです。

(ただし、これは答えではありません。問題と解決策を簡単に理解するための情報です)

于 2016-04-11T02:38:51.563 に答える