Sometimes the code below fails and sometimes it work. I'm using Java8. Is it a server side problem?
Exception in thread "main" javax.net.ssl.SSLException: Unsupported record version Unknown-0.0.
EDIT: I downgrade to JDK7 from JDK8 and it works. The only solution i found that works.
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());
}
I got the same error message in a new java installation when trying to use an SSL connection that enforces 256-bit encryption. To fix the problem I found I needed to install the Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files (e.g. http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html)
Download the Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files according to your JDK/JRE version and put it in lib/security folder
By default,Java Cryptographic Extension is limited in accessing function and algorithm usage.We need to make it unlimited.
I had this line
SSLContext sc = SSLContext.getInstance("SSL");
Had to change it to
SSLContext sc = SSLContext.getInstance("TLSv1");
And now it works on both, java 7 and java 8
Note: (In java 7 SSL and TLS both worked with the same url, in java 8 just tried TLSv1 but I guess SSLv1 also works)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With