我正在使用一个Web服务,该Web服务在我的身份验证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,那么如何禁用该检查,才能真正利用响应?
最佳答案
您可以尝试捕获错误。
try{
//code that causes error
}
catch(IOException ex){
if(ex.getMessage().equals("No authentication challenges found")){
//handle error
}
}