I am getting connection timeout when I try to run the DSS2SearchByRIC.java.
Is there a proxy setting that I need to change in my eclipse?
The postman GET request works just fine.
I am getting connection timeout when I try to run the DSS2SearchByRIC.java.
Is there a proxy setting that I need to change in my eclipse?
The postman GET request works just fine.
I got the same exception after adding a "https" parameter while creating HttpHost.
HttpHost proxy = new HttpHost(proxyHostName, proxyPortNumber, "https");
javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?
However, if I remove the "https" parameter, it works fine.
HttpHost proxy = new HttpHost(proxyHostName, proxyPortNumber);
Please try to set connection timeout in the code.
private int timeout=30; private RequestConfig config = RequestConfig.custom() .setConnectTimeout( timeout * 1000) .setConnectionRequestTimeout(timeout * 1000) .setSocketTimeout(timeout * 1000).build(); private CloseableHttpClient httpclient = HttpClientBuilder.create().setDefaultRequestConfig(config).disableContentCompression().build();
I found this code at http://www.baeldung.com/httpclient-timeout.
I get the following error:
javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?
Any idea why I get that?
It may relate to the Proxy. Can you share the code? I will try it in my environment.
Please find below the sample code:
It's one of the example files in Java tutorials.
import java.io.IOException; import java.io.UnsupportedEncodingException; import java.util.Properties; import org.apache.http.HttpHost; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClientBuilder; import org.apache.http.impl.client.BasicResponseHandler; import org.apache.http.impl.client.HttpClients; import org.apache.http.impl.conn.DefaultProxyRoutePlanner; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.HttpClient; import org.apache.http.client.ResponseHandler; import org.apache.http.conn.params.ConnRoutePNames; import org.json.JSONObject; /** * Hello world! * */ public class App { private String urlHost = "https://hosted.datascopeapi.reuters.com/RestApi/v1"; private String sessionToken = ""; private CloseableHttpClient httpclient = HttpClientBuilder.create().disableContentCompression().build(); public static void main(String[] args) throws Exception { Properties props = System.getProperties(); props.setProperty("https.proxyHost", "*****"); props.setProperty("https.proxyPort", "****"); // Port Number and Proxy set above if(args.length < 2) { System.out.println("Please enter DSS2 Username as 1st command line parameter, Password as 2nd"); System.exit(-1); } App dss2 = new App(); dss2.getSessionToken(args[0], args[1]); dss2.httpclient.close(); } /** * Request DSS2 for a Session Token (24 hour life) * * @param username * @param password */ public void getSessionToken(String username, String password) { try { HttpPost httppost = new HttpPost(urlHost + "/Authentication/RequestToken"); httppost.addHeader("content-type", "application/json; charset=UTF-8"); JSONObject TokenRequest = new JSONObject() .put("Credentials", new JSONObject() .put("Username", username) .put("Password", password)); StringEntity requestBody = new StringEntity(TokenRequest.toString()); httppost.setEntity(requestBody); ResponseHandler<String> responseHandler = new BasicResponseHandler(); httpclient = (CloseableHttpClient) createHttpClientOrProxy(); String response = httpclient.execute(httppost, responseHandler); JSONObject jsonResponse = new JSONObject(response); sessionToken = jsonResponse.get("value").toString(); System.out.println("Session Token (expires in 24 hours):\n" + sessionToken); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } private HttpClient createHttpClientOrProxy() { HttpClientBuilder hcBuilder = HttpClients.custom(); // Set HTTP proxy, if specified in system properties if( System.getProperty("https.proxyHost") !=null ) { int port = 8080; if( System.getProperty("https.proxyPort") !=null ) { port = Integer.parseInt(System.getProperty("https.proxyPort")); } HttpHost proxy = new HttpHost(System.getProperty("https.proxyHost"), port, "https"); DefaultProxyRoutePlanner routePlanner = new DefaultProxyRoutePlanner(proxy); hcBuilder.setRoutePlanner(routePlanner); } CloseableHttpClient httpClient = hcBuilder.build(); return httpClient; } }