忽略 HttpWebRequest 中的 401 Unauthorized
Ignore 401 Unathorized in HttpWebRequest
第三方网站 returns 401 而不是常规工作流程中的 200。浏览器忽略 401 并显示收到的 HTML 内容,因此用户甚至不知道有 401。但是 HttpWebRequest 抛出 HttpException。我怎样才能忽略它并得到响应?
你的代码抛出WebException,所以获取结果的解决方案是:将你的整个代码放在try catch
块中,catch块必须捕获WebException,并在你的catch块中编写以下代码以获得html内容。
try
{
// your code here
}
catch (WebException e2)
{
using (WebResponse response = e2.Response)
{
HttpWebResponse httpResponse = (HttpWebResponse)response;
Console.WriteLine(" Error : {0}", httpResponse.StatusCode);
using (Stream data = response.GetResponseStream())
using (var reader = new StreamReader(data))
{
//the html content is here
string text = reader.ReadToEnd();
Console.WriteLine(text);
}
}
}
第三方网站 returns 401 而不是常规工作流程中的 200。浏览器忽略 401 并显示收到的 HTML 内容,因此用户甚至不知道有 401。但是 HttpWebRequest 抛出 HttpException。我怎样才能忽略它并得到响应?
你的代码抛出WebException,所以获取结果的解决方案是:将你的整个代码放在try catch
块中,catch块必须捕获WebException,并在你的catch块中编写以下代码以获得html内容。
try
{
// your code here
}
catch (WebException e2)
{
using (WebResponse response = e2.Response)
{
HttpWebResponse httpResponse = (HttpWebResponse)response;
Console.WriteLine(" Error : {0}", httpResponse.StatusCode);
using (Stream data = response.GetResponseStream())
using (var reader = new StreamReader(data))
{
//the html content is here
string text = reader.ReadToEnd();
Console.WriteLine(text);
}
}
}