NullPointerException при создании SSL-сокета - PullRequest
1 голос
/ 17 июня 2011

В моем приложении я общаюсь с веб-сервисом по SSL.Поскольку я использую составную сущность, которая по умолчанию не поддерживается Android, я включил следующие библиотеки:

  • httpclient-4.1.1.jar
  • httpcore-4.1.jar
  • httpmime-4.1.1.jar

Сервер использует сертификат, подписанный органом, поддерживаемым Android.Это работает на большинстве устройств, хотя.Сегодня один из моих пользователей (Android 2.2 Motorola Defy) прислал мне журнал, в котором содержится следующее:

W/System.err( 2328): Caused by: java.lang.NullPointerException
W/System.err( 2328): at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketFactoryImpl.createSocket(OpenSSLSocketFactoryImpl.java:83)
W/System.err( 2328): at org.apache.http.conn.ssl.SSLSocketFactory.createSocket(SSLSocketFactory.java:375)
W/System.err( 2328): at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:168)
W/System.err( 2328): at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
W/System.err( 2328): at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
W/System.err( 2328): at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:352)
W/System.err( 2328): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
W/System.err( 2328): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
W/System.err( 2328): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
W/System.err( 2328): at my.api.Client.sendRequest(Client.java)
...

Я не могу воспроизвести это на своих устройствах и понятия не имею, почему это происходит.Я изучил исходный код OpenSSLSocketFactoryImpl, и единственная точка, из которой может возникнуть исключение NullPointerException, заключается в том, что sslParameters равно null.У вас есть идея, что я могу сделать в своем коде, чтобы обойти это исключение?

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

1 Ответ

0 голосов
/ 16 сентября 2011

Трассировка не является точным соответствием, но если ваш пользователь использует прокси-сервер, вы можете посмотреть, есть ли исправление для этой версии HttpClient: http://code.google.com/p/android/issues/detail?id=5255

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...