Even I am getting the same exception i.e java.net.ConnectException: Connection timed out: connect if I am not adding the proxy & port in your code.
java.net.ConnectException: Connection timed out: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(Unknown Source)
at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.connect(Unknown Source)
at com.sun.net.ssl.internal.ssl.BaseSSLSocketImpl.connect(Unknown Source)
at sun.net.NetworkClient.doConnect(Unknown Source)
at sun.net.www.http.HttpClient.openServer(Unknown Source)
at sun.net.www.http.HttpClient.openServer(Unknown Source)
at sun.net.www.protocol.https.HttpsClient.<init>(Unknown Source)
at sun.net.www.protocol.https.HttpsClient.New(Unknown Source)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(Unknown Source)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(Unknown Source)
at edu.sandip.TestURLConnection.main(TestURLConnection.java:23)
This exception you are getting because you are executing the code on your organization behind your organization proxy.
please use the below modified code. you will get the 200 OK as responseCode.
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
import javax.net.ssl.HttpsURLConnection;
public class TestURLConnection {
/**
* @param args
*/
public static void main(String[] args) {
try{
URL url = new URL("https://www.google.com/");
System.setProperty("https.proxyHost", "XXX.XXX.XXX.XX");
System.setProperty("https.proxyPort", "80");
HttpURLConnection connection = (HttpURLConnection)url.openConnection();
//HttpsURLConnection connection = (HttpsURLConnection)url.openConnection();
connection.setRequestMethod("GET");
connection.connect();
int code = connection.getResponseCode();
System.out.println("code: "+code);
} catch (Exception e) {
e.printStackTrace();
}
}
}
NOTE:
1. You need to get the proxyHost IP from your organization network admin.
2. You should use HttpsURLConnection for accessing https URL.