2016-01-26 3 views
0

У меня есть вопрос относительно использования HttpUrlConnection с веб-службой https.Сайт Https с использованием HttpURLConnection

В принципе, мы ранее писали кучу веб-сервисов, которые будут использоваться в приложении для Android, которые были всеми http-вызовами. Мы хотим изменить их для использования https. В основном, что меня беспокоит, будет ли мой существующий код работать правильно? Я ранее создал соединение, как следующее:

HttpURLConnection myConnection = (HttpURLConnection) myURL.openConnection(); 
myConnection.setConnectTimeout(TIMEOUT_MILLISEC); 
myConnection.connect(); 

Это, кажется, работает нормально с новым HTTPS веб-службы, но я задаюсь вопросом, почему мне не нужно, чтобы изменить его на что-то вроде этого:

HttpsURLConnection myConnection = (HttpsURLConnection) myURL.openConnection(); 
myConnection.setConnectTimeout(TIMEOUT_MILLISEC); 
myConnection.setSSLSocketFactory(createSSLSocketFactory()); 
myConnection.connect(); 

Я все еще планирую переезд в HttpsURLConnection вместо этого, но мне интересно, как более старые версии нашего приложения будет зависеть от наших предполагаемых изменений.

Спасибо за помощь!

ответ

1

В Документами HttpUrlConnection вы найдете:

Вызов OpenConnection() по URL со схемой "HTTPS" будет возвращать Согласовать HttpsURLConnection

Но поскольку HttpsURLConnection простирается от HttpURLConnection, это код:

HttpURLConnection myConnection = (HttpURLConnection) myURL.openConnection(); 

НЕ ПРИНИМАЕТ исключение класса, если url для h ttps подключение. Вы по-прежнему можете использовать HttpsUrlConnection - только для безопасности, которую вы можете проверить с помощью instanceof, если схема URL должна измениться.

+0

Это то, чего я ожидал, но по какой-то причине это не так, и он по-прежнему работает, несмотря на изменение URL ... Я не знаю, есть ли вероятность того, что WS не является " true 'https, но теперь я просто размышляю. –

+1

Я допустил ошибку и обновил свой ответ. – marcinj

+1

в качестве подсказки, с AndroidStudio вы можете фактически войти в 'Net.newConnection()', чтобы посмотреть, что он на самом деле делает. – marcinj

Смежные вопросы