Когда я переключился с ApacheHttpTransport на NetHttpTransport IOException вместо HttpResponseException для статуса 401 http

Когда я переключился с ApacheHttpTransport на NetHttpTransport IOException вместо HttpResponseException для статуса http 401.

Я получаю IOException со следующим сообщением: Получено «вызов аутентификации равен нулю»

Это не правильно. Я должен получить HttpResponseException со статусом 401. Кто-нибудь сталкивался с такой же проблемой?


person Alexey Zakharov    schedule 12.11.2011    source источник
comment
Я получаю IOException вместо HttpResponseException. Поэтому вопрос в том, как я могу это решить.   -  person Alexey Zakharov    schedule 12.11.2011


Ответы (2)


Я исправил проблему. На стороне сервера я не добавил заголовок «WWW-Authenticate». Этот заголовок ответа требуется для ответов 401.

person Alexey Zakharov    schedule 20.12.2011

Либо:

  • следите за IOException или
  • не переключайтесь на NetHttpTransport или
  • напишите свой собственный транспорт, чтобы делать то, что вы, кажется, хотите (что-то, что не имеет ничего общего с Apache HttpClient, вызывающим исключение, специфичное для HttpClient)
person CommonsWare    schedule 12.11.2011
comment
Но это ошибка. Статус 401 должен обрабатываться HttpResponseException. - person Alexey Zakharov; 28.11.2011
comment
@AlexeyZakharov: Но это ошибка - это маловероятно. HttpResponseException используется только HttpClient. ApacheHttpTransport использует HttpClient. NetHttpTransport не использует HttpClient. Поскольку NetHttpTransport не использует HttpClient, HttpResponseException не участвует. - person CommonsWare; 28.11.2011
comment
http://code.google.com/p/google-http-java-client/source/browse/google-http-client/src/main/java/com/google/api/client/http/HttpResponseException.java — это класс клиента Google Http. И работает со всеми статусами, кроме 401. - person Alexey Zakharov; 02.12.2011