Android4.0.4之後,服務器返回401或者407時,獲取不到消息體的主要原因就是報錯了,內容是:
java.io.IOException: No authentication challenges found
,而導致這個異常的原因是,Android4.0.4之後,Google對服務器返回的401或者407的消息頭進行了驗證,如果服務器在消息頭中添加了【WWW-Authenticate: XXX realm="xxx"】,則沒有問題,否則會在HttpURLConnection的getResponseCode()方法中會拋出IOException。
例如:
WWW-Authenticate: Basic realm="wjy"
這裏需要注意的是【"wjy"】中的“"”一定不能缺少,如果缺少了,一樣不能通過驗證。