Проверка ссылок, которые требуют аутентификации - PullRequest
0 голосов
/ 10 июня 2011

Я пытаюсь проверить все ссылки на конкретном сайте в C #, используя технику запрос-ответ.Я заметил, что ни одна из ссылок не возвращает «ОК».Я сосредоточился на проблеме.Сайт требует аутентификации.Зная это, как я должен идти об этом ????

Вот мой пример кода:

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 голосов
/ 10 июня 2011

1, Тайм-аут (MSDN) : запрос системы доменных имен (DNS) может занять до 15 секунд для возврата или тайм-аута.Если в вашем запросе содержится имя хоста, для которого требуется разрешение, и для параметра Timeout установлено значение меньше 15 секунд, может пройти 15 или более секунд, прежде чем будет сгенерировано исключение WebException, чтобы указать время ожидания для вашего запроса.

2,Redirect: если страница перенаправлена ​​на другую страницу (статусы 301 и 302), HttpWebResponse автоматически получит последнюю страницу, таким образом, статус 200 (ОК)

3, если страница не найдена (404) или ошибка сервера (500) или другое, скинет WebException

0 голосов
/ 10 июня 2011

Хотите ли вы, чтобы ваш код подтверждения корректно проверял страницы вашего сайта?

В этом случае вам необходимо программно пройти аутентификацию на вашем сайте.Поскольку аутентификация обычно выполняется с помощью куки-файлов, вам необходимо каким-то образом получить куки-файл аутентификации, а затем прикрепить его к каждому вашему запросу.

...