我的代码存在问题,因为我必须验证某些网站的状态才能通知他们是否正常工作。我可以成功检查多个网站,但是对于特定的网站,它总是返回404 Not Found,即使网站已启动,如果我尝试在浏览器上打开页面,我可以查看它,这是我的代码:
public HttpStatusCode GetHeaders(string url, bool proxyNeeded)
{
HttpStatusCode result = default(HttpStatusCode);
var request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "HEAD";
request.Credentials = new NetworkCredential(username, password, domain);
if (proxyNeeded)
{
IWebProxy proxy = new WebProxy("127.0.0.1", port_number);
proxy.Credentials = new NetworkCredential(username, password, domain);
request.Proxy = proxy;
}
try
{
var response = (HttpWebResponse) request.GetResponse();
result = response.StatusCode;
response.Close();
}
catch (WebException e)
{
if (e.Status == WebExceptionStatus.ProtocolError)
{
WebResponse resp = e.Response;
using (StreamReader sr = new StreamReader(resp.GetResponseStream()))
{
//TODO: capture the exception!!
}
}
}
return result;
}
异常并没有告诉我与“未找到”有什么不同,这让我感到困惑,因为我不知道在哪里可以看。网址失败的是:http://cbprod-app/InterAction/home
如果我在没有设置代理的情况下请求页面,则返回“401未授权”,因为它需要显示代理身份验证,我的想法已经用完了,对于我做错了什么建议?
非常感谢你。