Как прочитать ответ из URL Https? - PullRequest
0 голосов
/ 25 июня 2009

Я использую следующий код для получения кода ответа из URL-адресов на основе https, но когда я запускаю прогу, она просто зависает.

код:

import java.net.;
import javax.net.ssl.;
import java.io.*;

class Https2
{
    public static void main(String args[]) throws Exception
    {
        URL u = new URL("https://myurl");
        HttpsURLConnection hc = (HttpsURLConnection)u.openConnection();
        hc.setConnectTimeout(3000);
        hc.setReadTimeout(5000);
        System.out.println("Response Code: " + hc.getResponseCode());
        hc.disconnect();
    }
}

Как установить успешное соединение с URL Https?

любая помощь или идеи будут высоко оценены.

Спасибо

Ответы [ 4 ]

1 голос
/ 25 июня 2009

Не знаю, помогает ли это, но у меня никогда не было особой радости с классами JDK HTTP, и я обычно работал с API Jakarta Common HTTP Client (http://hc.apache.org/httpclient-3.x/).

0 голосов
/ 25 июня 2009

Аутентификация сервера требуется по умолчанию. Вам необходимо установить системное свойство javax.net.ssl.trustStore в качестве имени хранилища ключей, содержащего сертификат сервера.

Кстати, неплохо было бы поймать и распечатать исключения, чтобы помочь диагностике.

0 голосов
/ 25 июня 2009

https://mail.google.com/mail/ работает на моем компьютере с Windows XP. Может быть, ваши настройки брандмауэра Windows не содержат java.exe в качестве исключения? Или сайт, к которому вы хотите подключиться, использует базовую аутентификацию HTTP через соединение HTTPS. Или сайту нужно, чтобы вы идентифицировали себя с сертификатом, предложенным другими?

Редактировать: Попробуйте свой код без параметров времени ожидания. HTTPS-соединение и рукопожатие обычно медленнее, чем обычный HTTP-вызов. Ваше соединение может истечь из-за истечения времени ожидания, прежде чем оно сможет прочитать запрошенные данные.

Я думаю, hc.setConnectionTimeout() может даже не работать, потому что, когда вы достигаете этой точки, у вас уже есть работающее соединение в соответствии с javadoc .

0 голосов
/ 25 июня 2009

Я попробовал прикрепленный образец с https://mail.google.com/mail/, и он безупречно работал на Linux и Mac OS X.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...