Я использовал следующий код для подключения к одному из сервисов Google. Этот код отлично работал на моей локальной машине :
HttpClient client=new DefaultHttpClient();
HttpPost post = new HttpPost("https://www.google.com/accounts/ClientLogin");
post.setEntity(new UrlEncodedFormEntity(myData));
HttpResponse response = client.execute(post);
Я поместил этот код в производственную среду, которая заблокировала Google.com. По запросу они разрешили связь с сервером Google, позволив мне получить доступ к IP : 74.125.236.52 - который является одним из IP-адресов Google. Я отредактировал свой файл hosts, чтобы добавить и эту запись.
До сих пор я не мог получить доступ к URL, и мне интересно, почему. Поэтому я заменил приведенный выше код на :
HttpPost post = new HttpPost("https://74.125.236.52/accounts/ClientLogin");
Теперь я получаю ошибку вида :
javax.net.ssl.SSLException: имя хоста в сертификате не совпало: <74.125.236.52> !=
Наверное, это потому, что у Google несколько IP-адресов. Я не могу попросить сетевого администратора разрешить мне доступ ко всем этим IP - возможно, я даже не получу весь этот список.
Что мне теперь делать? Существует ли обходной путь на уровне Java? Или это полностью в руках сетевого администратора?