I am working on a SSL client server program and I have to reuse the following method.
private boolean postMessage(String message){ try{ String serverURLS = getRecipientURL(message); serverURLS = 'https:\\\\abc.my.domain.com:55555\\update'; if (serverURLS != null){ serverURL = new URL(serverURLS); } HttpsURLConnection conn = (HttpsURLConnection)serverURL.openConnection(); conn.setHostnameVerifier(new HostnameVerifier() { public boolean verify(String arg0, SSLSession arg1) { return true; } }); conn.setDoOutput(true); OutputStream os = conn.getOutputStream(); OutputStreamWriter wr = new OutputStreamWriter(os); wr.write(message); wr.flush(); if (conn.getResponseCode() != HttpsURLConnection.HTTP_OK) return false; else return true; }
Here ServerURL is initialized as
private URL serverURL = null;
When I try to execute this method I get an exception at Line,
OutputStream os = conn.getOutputStream();
The exception is
java.lang.IllegalArgumentException: protocol = https host = null
What is the reason for this?
URLs use forward slashes (/), not backward ones (as windows). Try:
The reason why you get the error is that the URL class can’t parse the host part of the string and therefore,
hostisnull.