2010-09-29 2 views
0

Я работаю над библиотекой, предназначенной для интеграции в другие приложения. Мне нужно общаться с https-сервером, и я использую apache commons HttpClient 3.1. У меня есть собственное хранилище ключей и необходимо зарегистрировать Protocol через: Protocol.registerProtocol. Мне было интересно, есть ли способ зарегистрировать это для моего конкретного экземпляра клиента, а не статически - таким образом, я не испортил никаких других экземпляров, и меня никто не мешает.Apache Commons Http Client - Регистрация конкретного клиента протокола

Я увидел что-то, где я могу получить клиентов HostConfiguration и позвонить setHost с протоколом, но он не работает должным образом. Я регистрирующий это нравится:

HostConfiguration config = client.getHostConfiguration(); 
config.setHost(remoteUrl.getHost(), remoteUrl.getPort(), new Protocol("https", new MyProtocolSocketFactory(), 443)); 

, но при попытке установить соединение, то SSL рукопожатия не удается, в то время как он работает при использовании Protocol.registerProtocol с теми же параметрами. Неудача стандарт:

Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

+0

Возможный дубликат [Невозможно найти допустимый путь сертификации для запрошенной цели - ошибка даже после импорта сертификата) (http://stackoverflow.com/questions/9210514/unable-to-find-valid-certification-path-to- просьба-мишени без ошибок даже-после-с) – lpapp

ответ

-2

Обновление до HttpComponents 4 и оставить клиента 3.x в одиночку.

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

  • Нет связанных вопросов^_^