您好我正在研究android和java.So我的问题是,每当401发生时,我都无法获得响应标头,也无法获取状态代码。我正在使用http url连接。 我的代码如下所示:
String https_url = "http://abc.com";
HttpsURLConnection con = null;
int status;
URL url;
try {
url = new URL(https_url);
con = (HttpsURLConnection)url.openConnection();
con.setDoInput(true);
int responseCode = con.getResponseCode(); //throw IOException:Received authentication challenge is null
if (responseCode == 200)
{
}
else
{
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
Log.i("&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*", "inside exception");
if (con != null) {
Log.i("&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*", "inside not null");
int responseCodeAfterException = con.getResponseCode();
Log.i("&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*", "inside not null and response");
Log.i("&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*", "inside not null and response"+responseCodeAfterException);
// Handle according to new response code
}
e.printStackTrace();
}
我没有从响应标头中获取任何字段。我知道这是身份验证问题,我的服务器给出401响应,但我无法获得响应代码。我做错了什么。如何处理这种异常。需要帮助谢谢。
答案 0 :(得分:0)
看一下这个问题:IOException: Received authentication challenge is null。
似乎引发了异常,因为响应不包含WWW-Authenticate
标头(请参阅the spec)。我不能确定这是你的情况,但你可以检查它,也许,如果是这种情况并且你控制服务器方,可以尝试修复服务器代码以返回标题。
否则,您只能捕获IOException并将其报告给您的应用程序。