2012-03-04 21 views
4

我有一個奇怪的問題: 在Android應用程序中實現到Web服務器的接口,我使用HttpsUrlConnection連接到它。該連接使用額外的HTTP基本授權(使用setRequestProperty),但通過HTTPS獲得純正的GET請求。Android上的不一致的HttpUrlConnection行爲 - 如何調試?

它在使用Android 4.0.3的模擬器上使用它的效果很好,但在Android 2.3.5(模擬器和真實設備)上出現「錯誤請求」HTTP 400錯誤。 我沒有對服務器的控制權,所以我看不出究竟是什麼問題。

有沒有人遇到過這樣的問題,或者知道如何打印/記錄實際發送的請求?

TIA,

帕特里克

回答

4

你可以設置代理,如提琴手或查爾斯代理(我認爲有Firefox擴展爲好),並指向您的應用程序代理來代替。即使您沒有將其設置爲真正的代理服務器(這樣請求實際上可以工作),只要它捕獲請求,您就可以比較從4.0.3和2.3之間的請求之間的差異。 5。

+0

非常感謝 - Charles在我的Mac上完美工作,我發現Android 2.3.5不會自動在HTTP請求中設置「主機」參數,而Android 4會自動設置。 但至少我現在知道,問題在哪裏!謝謝 – Patrick 2012-03-08 20:38:36

+0

太棒了!很高興它解決了。 – 2012-03-08 20:39:52