2011-11-12 21 views
0

當我從ApacheHttpTransport切換到NetHttpTransport時,對於401 http狀態拋出IOException而不是HttpResponseException。當我從ApacheHttpTransport切換到NetHttpTransport對於401 http狀態拋出IOException而不是HttpResponseException

我得到IOException,使用以下信息:收到「認證挑戰爲空」

這是不對的。我應該得到401狀態的HttpResponseException。有人遇到同樣的問題嗎?

+0

你的問題是什麼? – CommonsWare

+0

我得到IOException異常HttpResponseException。所以問題是我該如何解決這個問題。 –

回答

1

我修復了這個問題。在服務器端,我沒有添加標題「WWW-Authenticate」。 401響應需要此響應標頭。

1

或者:

  • 手錶爲IOException,或
  • 不切換到NetHttpTransport,或
  • 編寫自己的定製運做,你看起來是想(有東西,有什麼用Apache HttpClient拋出一個HttpClient特定的異常)
+0

但這是錯誤。 401狀態應該由HttpResponseException處理。 –

+0

@AlexeyZakharov:「但這是錯誤」 - 這似乎不太可能。 'HttpResponseException'只用於'HttpClient' **。 'ApacheHttpTransport'使用'HttpClient'。 'NetHttpTransport'不使用'HttpClient'。由於'NetHttpTransport'不使用'HttpClient',因此不涉及'HttpResponseException'。 – CommonsWare

+0

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以外,它適用於所有狀態 –

相關問題