Используя класс Java HttpsURLConnection

У меня есть маленькая часть кода, который в основном impements Клиент HTTP, т.е. она ОТПРАВЛЯЕТ запрос и работает с ОТВЕТОМ ре. Пока HTTP является concenerned, все работает хорошо. По некоторым причинам я теперь должен поддерживать HTTPS также. Таким образом, вот кратко, что я делаю для открытия соединения:

 URL url = new URL(serverAddress);
 HttpsURLConnection httpsConn = (HttpsURLConnection) url.openConnection();

Это перестало работать, указывая:

sun.net.www.protocol.https.HttpsURLConnectionImpl cannot be cast to com.sun.net.ssl.HttpsURLConnection

Я предполагаю, что это довольно тривиально, но я просто не получаю то, что я делаю неправильно в этом... Погугленный это, и код просто выглядит правильным - нет?

любые идеи ценятся!

32
задан Pragnesh Ghoda シ 24 October 2015 в 06:04
поделиться

3 ответа

Просто сохраните его java.net.URLConnection или вместо этого преобразуйте его в java.net.HttpURLConnection . Оба предлагают методы для выполнения желаемой задачи на хорошем уровне.


Дополнительное замечание, не связанное с технической проблемой: вы не должны никогда явно импортировать / использовать классы, специфичные для реализации Sun Java SE, в вашем коде.Это недокументированные классы, в которые могут вноситься изменения, которые могут привести к нарушению работы кода при обновлении JVM. С другой стороны, ваш код также может сломаться, если вы запустите его на JVM другого производителя.


Обновление : поскольку вы, кажется, случайно импортировали его, перейдите в Окно> Настройки> Java> Внешний вид> Фильтры типов и Добавьте com.sun. * ] и вс. * в список. Таким образом, вы никогда не импортируете их случайно:

enter image description here

28
ответ дан 27 November 2019 в 20:05
поделиться

Проверьте свой импорт, вы должны использовать

java.net.HttpURLConnection

или

javax.net.ssl.HttpsURLConnection
6
ответ дан 27 November 2019 в 20:05
поделиться

Трудно сказать, не видя весь файл, но похоже, что вы импортируете com.sun.net.ssl.HttpsURLConnection, когда вам действительно нужен javax.net.ssl.HttpsURLConnection.

3
ответ дан 27 November 2019 в 20:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: