Connect to UPS HTTPS/ssl server for Rates Web Service
posted 6 years ago
I'm trying to connect to UPS's https server in order to obtain the rates information. They need the file in xml format, so i have it ready, now the problem is connecting to their https server. It keeps throwing "javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?"
I'm fighting this issue for more than a week. I have attached code snippet of the connection string information,(BTW) this info was supplied to by UPS, but they do not want to assist unless we are ready for production. Go figure....Any help would be appreciated.
fName = fPath + ".xml";
XMLWriter writer = new XMLWriter(new FileWriter(fName));
writer.write(accessRequest().toString() + rateRequest().toString());
System.setProperty( "javax.net.debug", "SSL");// found on the internet for additional notes on error
System.setProperty("java.protocol.handler.pkgs", "com.sun.net.ssl.internal.www.protocol");//found this on javaworld for ssl connections
Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());//found this on javaworld for ssl connections
URL url = new URL("https://wwwcie.ups.com/ups.app/xml/Rate:8443");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
//SSLException thrown here if server certificate is invalid
PrintWriter out = new PrintWriter(conn.getOutputStream());
out.println(accessRequest().toString() + rateRequest().toString());
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));