如何在Android上的HttpUrlConnection中禁用401上的WWW-Authenticate标头检查?

时间:2012-10-25 00:11:00

标签: java android httpurlconnection

我正在使用一个Web服务,当我的auth cookie到期时返回401,这会导致HttpUrlConnection抛出此错误:

java.io.IOException: No authentication challenges found
    at libcore.net.http.HttpURLConnectionImpl.getAuthorizationCredentials(HttpURLConnectionImpl.java:427)
    at libcore.net.http.HttpURLConnectionImpl.processAuthHeader(HttpURLConnectionImpl.java:407)
    at libcore.net.http.HttpURLConnectionImpl.processResponseHeaders(HttpURLConnectionImpl.java:356)
    at ...

我知道这种情况正在发生,因为服务器没有返回WWW-Authenticate标头,但这是我无法控制的。很高兴HttpUrlConnection为我做这个检查,但这是现实世界,我们并不总是能够使用完全遵循HTTP规范的服务器。由于其他代码依赖性,我无法摆脱HttpUrlConnection,因此如何禁用检查以便实际使用响应?

1 个答案:

答案 0 :(得分:0)

你可以尝试捕捉错误。

try{
     //code that causes error
}
catch(IOException ex){
    if(ex.getMessage().equals("No authentication challenges found")){
        //handle error
    }
}