2015-04-15 4 views
0

В моем андроиде коды, я пытаюсь подключиться к одному конкретному URL какСделать HTTPS соединения с использованием TLS в качестве базового протокола

URL URL = новый URL (urlStr);

HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();

Здесь мое приложение пытается подключиться к URL (https) через SSL в некоторых наборах мобильных телефонов и использует TLS в качестве основного протокола. Поскольку целевой сервер принимает только TLS, он не работает для мобильных телефонов, который инициирует https-соединения через SSL.

Подтвердили вышеуказанное поведение через wirehark.

Есть ли способ, как мое приложение может инициировать https-подключения только через TLS.

Спасибо.

+0

«Поскольку целевой сервер принимает только TLS, он не работает для мобильных телефонов, который инициирует https-соединения через SSL». Он не должен этого делать. Он должен обновить соединение во время рукопожатия. Отправьте сообщение об ошибке, которое вы получите. – EJP

ответ

0

Вы можете сделать это, установив поставщика с классом SSLContext.

SSLContext context = SSLContext.getInstance("TLS"); 
    context.init(null, null, null); 
    SSLSocketFactory factory = context.getSocketFactory(); 
    httpURLConnection.setSSLSocketFactory(factory); 

Но есть известная issue поэтому он не может работать на всех устройствах. Для получения дополнительной информации о SSL см. android training.

+0

Спасибо за ответ. Я использую код, который вы там прокомментировали. Позвольте мне изучить ссылки, которые вы предложили. – user3768397

+0

Есть ли другие способы, как я могу сказать, что мое приложение подключается к https-адресам только через tls .... – user3768397

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