Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как узнать, есть ли по ссылке ХТМЛ-станица, без загрузки самой страници? 
:(
    Опции темы
Yama
Дата 23.11.2006, 13:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 167
Регистрация: 2.8.2006

Репутация: нет
Всего: 2



В приложении есть набор ссылок. Как узнать, какие битые, а какие нет без подгрузки самих страниц или любых других данных по ним?
Если есть примеры, как это можно реализовать - поделитесь, плз!
--------------------
Если бы строители строили дома так же, как программисты пишут программы, то первый же залетевший в форточку дятел разрушил бы всю нашу цивилизацию.
PM MAIL   Вверх
arilou
Дата 24.11.2006, 00:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

Репутация: 3
Всего: 61



Yama, HttpWebRequest в помощь. И смотреть, будут ли ошибки в респонсе. По-другому никак


--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
neutrino
Дата 2.3.2007, 10:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Gothic soul
****


Профиль
Группа: Модератор
Сообщений: 3041
Регистрация: 25.3.2002
Где: Верхняя Галилея, Кармиэль

Репутация: нет
Всего: 62



Я писал сервис для мониторинга битых ссылок. Каждую ссылку проверял в отдельном потоке. Если интересен весь код, могу выложить (хотите тут?).

Код

       private void asyncCheck()
        {
            Uri uri = new Uri(this.URLToCheck);

            HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(uri);

            try
            {
                HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse();
                if (webRequest.HaveResponse)
                {
                    if (webResponse.StatusCode == HttpStatusCode.OK)
                        this.responseState = new ResponseState(ResponseType.OK);
                    else
                        this.responseState = new ResponseState(ResponseType.ERROR);
                }
                else
                    this.responseState = new ResponseState(ResponseType.TIMEOUT);
            }
            catch (ThreadAbortException)
            {
                // Manage the situation when the thread is aborted
                webRequest.Abort();
                webRequest = null;
                this.responseState = new ResponseState(ResponseType.TIMEOUT);
            }
            catch (WebException)
            {
                // Network problem
                this.responseState = new ResponseState(ResponseType.NOT_AVAILABLE);
            }
        }



--------------------
The truth comes from within ...

Покойся с миром, Vit 
PM MAIL WWW ICQ Skype GTalk   Вверх
Plamenk
Дата 2.3.2007, 13:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 258
Регистрация: 18.2.2003

Репутация: 1
Всего: 3



Можно с помощью регулярных выражений. Что-то типа этого:

Код

(http://|https://)?(www)?\.([a-zA-Z0-9]+[\.\-]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,4}(/[a-zA-Z0-9]+)*

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
cully
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, cully, mr.DUDA, Exception.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Распределённые приложения и сеть | Следующая тема »


 




[ Время генерации скрипта: 0.1292 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.