Я попытался отправить HTTPS-запрос Get на https://google.com с использованием собственных классов Java, Apache HttpClient и Spring restTemplate, но все три закончились одной и той же проблемой: Исключение соединения: ошибка времени ожидания соединения.
Звонки на http://www.google.com работают просто отлично, только когда я использую https, тайм-аут наступает
Я нахожусь за корпоративным брандмауэром, поэтому я прочитал некоторые запросы на использование прокси,Я установил переменные среды -Dhttp.proxyHost и -Dhttp.proxyPort, а также переменную среды -Djavax.net.ssl.trustStore.Я удостоверился, что Googles Root SSL Cert находится в списке надежных сертификатов в trustStore.
В идеале я буду использовать шаблон отдыха Spring, поэтому у меня есть следующий код:
RestTemplate restTemplate = new RestTemplate();
String url = "https://www.google.com";
String response = restTemplate.getForObject(url, String.class);
return new ResponseEntity<String>(response, HttpStatus.OK);
После работы с отладчиком я вижу, что он застревает в строке 2, когда он должен бытьсделать запрос.Когда я просматривал сетевой трафик с помощью Fiddler, я увидел, что HTTP-вызов сделан на localhost, и этот вызов истекает.Я никогда не видел HTTPS-вызов на https://www.google.com. Это очень трудно исправить, потому что я не могу сказать, является ли это проблемой с прокси-сервером или какой-либо настройкой среды.
Вот трассировка стека:
Caused by: java.net.ConnectException: Connection timed out: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method) ~[na:1.8.0_161]
at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source) ~[na:1.8.0_161]
at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source) ~[na:1.8.0_161]
at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source) ~[na:1.8.0_161]
at java.net.AbstractPlainSocketImpl.connect(Unknown Source) ~[na:1.8.0_161]
at java.net.PlainSocketImpl.connect(Unknown Source) ~[na:1.8.0_161]
at java.net.SocksSocketImpl.connect(Unknown Source) ~[na:1.8.0_161]
at java.net.Socket.connect(Unknown Source) ~[na:1.8.0_161]
at sun.security.ssl.SSLSocketImpl.connect(Unknown Source) ~[na:1.8.0_161]
at sun.security.ssl.BaseSSLSocketImpl.connect(Unknown Source) ~[na:1.8.0_161]
at sun.net.NetworkClient.doConnect(Unknown Source) ~[na:1.8.0_161]
at sun.net.www.http.HttpClient.openServer(Unknown Source) ~[na:1.8.0_161]
at sun.net.www.http.HttpClient.openServer(Unknown Source) ~[na:1.8.0_161]
at sun.net.www.protocol.https.HttpsClient.<init>(Unknown Source) ~[na:1.8.0_161]
at sun.net.www.protocol.https.HttpsClient.New(Unknown Source) ~[na:1.8.0_161]
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(Unknown Source) ~[na:1.8.0_161]
at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(Unknown Source) ~[na:1.8.0_161]
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source) ~[na:1.8.0_161]
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(Unknown Source) ~[na:1.8.0_161]
at sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(Unknown Source) ~[na:1.8.0_161]
at org.springframework.http.client.SimpleBufferingClientHttpRequest.executeInternal(SimpleBufferingClientHttpRequest.java:78) ~[spring-web-4.3.18.RELEASE.jar:4.3.18.RELEASE]
at org.springframework.http.client.AbstractBufferingClientHttpRequest.executeInternal(AbstractBufferingClientHttpRequest.java:48) ~[spring-web-4.3.18.RELEASE.jar:4.3.18.RELEASE]
at org.springframework.http.client.AbstractClientHttpRequest.execute(AbstractClientHttpRequest.java:53) ~[spring-web-4.3.18.RELEASE.jar:4.3.18.RELEASE]
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:660) ~[spring-web-4.3.18.RELEASE.jar:4.3.18.RELEASE]
... 91 common frames omitted