4

我正在使用当我的身份验证 cookie 过期时返回 401 的 Web 服务,这会导致 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,那么如何禁用检查以便我可以实际使用响应?

4

1 回答 1

0

您可以尝试捕获错误。

try{
     //code that causes error
}
catch(IOException ex){
    if(ex.getMessage().equals("No authentication challenges found")){
        //handle error
    }
}
于 2012-10-25T00:19:31.907 回答