我在发送请求时遇到此错误,并使用代码401获取回复:
有些人说:com.android.volley.NoConnectionError:java.io.IOException:未发现身份验证质询
但这对我来说很奇怪,因为我不想使用WWW认证的东西,我只想获得代码401,但我总是得到例外。
如何绕过这个问题?任何建议都非常感谢。
答案 0 :(得分:6)
我做了一些研究并得出结论,这是一个服务器问题,不符合惯例。 来自wiki:
401 Unauthorized(RFC 7235) 与403 Forbidden类似,但专门用于需要身份验证且失败或尚未提供的情况。响应必须包含WWW-Authenticate头字段,其中包含适用于所请求资源的质询。请参阅基本访问身份验证和摘要访问身份验证。
我认为解决此问题的最佳方法是通过添加标题来解决服务器问题(例如:
WWW-Authenticate:xBasic realm =""
对我来说,我无法更改服务器,因此我必须检查错误消息以检测401错误:
if (error.getMessage().equalsIgnoreCase("java.io.IOException: No authentication challenges found")){
showLoginError();
}
不是很优雅的解决方案,但现在可以工作。