随机SSLException不支持的记录版本Unknown-0.0

dan*_*cci 10 java ssl sslexception gracenote

有时下面的代码会失败,有时它会起作用.我正在使用Java8.这是服务器方面的问题吗?

线程"main"中的异常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());
}
Run Code Online (Sandbox Code Playgroud)

小智 8

尝试使用强制执行256位加密的SSL连接时,我在新的Java安装中收到了相同的错误消息.为了解决这个问题,我发现我需要安装Java Cryptography Extension(JCE)Unlimited Strength Jurisdiction Policy Files(例如http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124. HTML)

  • 这是公平的,提供可能有所帮助的补救措施,但这并没有详细解释究竟是什么导致了他的错误的随机性.我在生产环境中应用最新的JDK和JCE时遇到了这个问题,所以我不认为这是一个解决方案. (2认同)