验证需要身份验证的链接

时间:2011-06-10 14:20:23

标签: c# automation httpwebrequest httpwebresponse

我正在尝试使用请求 - 响应技术验证C#中特定站点中的所有链接。我注意到没有链接返回“OK”。我把注意力集中在这个问题上。该站点需要身份验证。知道了这一点,我该怎么办呢????

这是我的代码示例:

WebRequest objWebRequest;
HttpWebResponse objHttpResponse;
try
{
        objWebRequest = (HttpWebRequest)WebRequest.Create(strCheckingLink);
        objWebRequest.Timeout = 30000;
        objHttpResponse = (HttpWebResponse)objWebRequest.GetResponse();
        if (objHttpResponse.StatusCode == HttpStatusCode.Redirect)
        {}
        if (objHttpResponse.StatusCode == HttpStatusCode.OK)
        {
                httpSCode = (int)objHttpResponse.StatusCode;
                httpMsg = "OK";
                invalidLink = false;
        }
        else
        {
                invalidLink = true;
        }
}

2 个答案:

答案 0 :(得分:0)

您是否希望验证码正确验证您网站的页面?

在这种情况下,您需要以编程方式对自己的网站进行身份验证。由于身份验证通常是通过cookie完成的,因此您需要以某种方式获取身份验证cookie,然后将其附加到您的每个请求中。

答案 1 :(得分:0)

1,Timeout (MSDN): 域名系统(DNS)查询最多可能需要15秒才能返回或超时。如果您的请求包含需要解析的主机名,并且您将Timeout设置为小于15秒的值,则可能需要15秒或更长时间才会抛出WebException以指示请求超时。

2,重定向:如果页面重定向到另一个页面(状态301和302),HttpWebResponse将自动获取finally页面,因此状态为200(OK)

3,如果找不到页面(404)或服务器错误(500)或其他,则会抛出WebException