Ну, есть более простой способ сделать это вместо изменения HttpsServiceConnectionSE.Вы можете установить фальшивый менеджер доверия, как описано в http://groups.google.com/group/android-developers/browse_thread/thread/1ac2b851e07269ba/c7275f3b28ad8bbc?lnk=gst&q=certificate, а затем вызвать allowAllSSL (), прежде чем делать какие-либо SSL-соединения / вызов ksoap2.Он зарегистрирует новые значения по умолчанию HostnameVerifier и TrustManager.ksoap2 при использовании связи SSL будет использовать те, которые установлены по умолчанию, и работает как шарм.
Вы также можете приложить к этому дополнительные усилия, сделать его (намного) более безопасным и установить сертификаты в локальном приложениидоверительный управляющий, наверное.Я был в безопасной сети и не боялся атак типа «человек посередине», поэтому я просто выполнил первый.
Я счел необходимым использовать KeepAliveHttpsTransportSE, например, new KeepAliveHttpsTransportSE(host, port, file, timeout);
.Параметры входят в объект URL, поэтому, например, для доступа к установке Jira это что-то вроде new KeepAliveHttpsTransportSE("host.whatever", 443, "/rpc/soap/jirasoapservice-v2", 1000)
.
Иногда это удобно, если вы новичок в этой технологии или в веб-сервисе, который вы хотели бы использовать для игры сэто в среде J2SE, а не в эмуляторе или даже на устройстве, но в библиотеке JsoSE / ME ksoap2 отсутствует (KeepAlive) HttpsTransportSE (я использовал ksoap2-j2se-full-2.1.2.jar).Что вы могли бы сделать, так это получить исходные коды для трех классов HttpsTransportSE, KeepAliveHttpsTransportSE и HttpsServiceConnectionSE из дополнительного продукта Android ksoap2-android, поместить их в свой проект J2SE и использовать их.Это сработало для меня, и стало повышением производительности, чтобы сделать первые шаги правильно с неизвестным и довольно сложным веб-сервисом.