[Урок] Проверка доступности сайта - Форум Cheat-Master.ru
  • Страница 1 из 1
  • 1
Модератор форума: Sanoxxx, Alowir, Phoenixxx_Czar  
Форум » Программирование » AHK Программирование » [Урок] Проверка доступности сайта (Проверяем доступен ли сайт.)
[Урок] Проверка доступности сайта
tumkin Дата: Пятница, 28.08.2015, 18:38 | Сообщение # 1
Tumkin Project
Сообщений: 1186
Статус: Offline
Всем привет, сегодня мне было нечего делать и я решил написать свой 1 урок в разделе AHK Программирование.


Данный урок будет о том, как проверить доступность сайта.


Для чего это может пригодиться?
Ну например в Вашем скрипте есть система автоматического обновления и если сайт не доступен, скрипт зависнет на длительное время. А благодаря этой функции Вы сможете предупредить пользователя что сайт, который используется для проверки наличия обновлений, не работает.

И так, сама функция проверки обновления очень маленькая и проста. Каждую строчку я опишу подробно.
Код

StatusSite(url) ; Создание функции
{
  ComObjError(False) ; Отключаем ошибки WinHttpRequest
  StatusSite := ComObjCreate("WinHttp.WinHttpRequest.5.1") ; Создаем WinHttpRequest
  StatusSite.SetTimeouts(6000,6000,6000,6000) ; Устанавливаем таймаут при подключении к сайту.

  StatusSite.Open("GET",url) ; Создание GET запроса на указанный URL
  StatusSite.Send() ; Отправка запроса
  if (StatusSite.ResponseText = "") ; Проверка пустая ли переменная с ответом
   return false ; Возвращаем отрицательный ответ
  else
   return true ; Возвращаем положительный ответ
}


Как использовать данную функцию?
Использовать данную функцию очень просто. Пример кода вы можете увидеть ниже.
Код

if (StatusSite("http://vk.com/"))
  msgbox % "Сайт доступен"
else
  msgbox % "Сайт не доступен"
exitapp

StatusSite(url)
{
  ComObjError(False)
  StatusSite := ComObjCreate("WinHttp.WinHttpRequest.5.1")
  StatusSite.SetTimeouts(6000,6000,6000,6000) ;Set timeouts to 6 seconds

  StatusSite.Open("GET",url)
  StatusSite.Send()
  if (StatusSite.ResponseText = "")
   return false
  else
   return true
}


P.S. Проверка идет в течении 6 секунд, то есть если сайт не отвечает в течении 6 секунд, то скрипт выдаст что сайт не доступен.

На этом урок окончен. Желаю вам хорошо выучить AutoHotkey и делать отличные скрипты.


exocode Дата: Пятница, 28.08.2015, 23:09 | Сообщение # 2
Любитель
Сообщений: 34
Статус: Offline
А чем это не гоже? (вырвал из какого то старого своего скрипта , но точно помню что не я писал).
Код

ComObjError(false)
HTTP := ComObjCreate("WinHTTP.WinHTTPRequest.5.1")
HTTP.Open("GET", "http://microsoft.com")
HTTP.Send()
if (HTTP.ResponseText = "")
msgbox "Сайт не доступен"  
else  
msgbox "Сайт доступен"
tumkin Дата: Суббота, 29.08.2015, 08:18 | Сообщение # 3
Tumkin Project
Сообщений: 1186
Статус: Offline
Цитата exocode ()
ComObjError(false)
HTTP := ComObjCreate("WinHTTP.WinHTTPRequest.5.1")
HTTP.Open("GET", "http://microsoft.com")
HTTP.Send()
if (HTTP.ResponseText = "")
msgbox "Сайт не доступен"  
else  
msgbox "Сайт доступен"

Работает по такому же методу, но у меня ФУНКЦИЯ. А то есть для проверки доступности сайта нужно написать только 1 строку.

Так же в моем методе есть таймауты. С твоим методом будет долго проверять, около 15-30 секунд. Когда при моем методе всего 6

Используя функции, код будет меньше раз в 10


exocode Дата: Суббота, 29.08.2015, 17:46 | Сообщение # 4
Любитель
Сообщений: 34
Статус: Offline
Цитата tumkin ()
долго проверять, около 15-30 секунд

Ниразу такого не замечал. Сейчас сделаю замер.

Добавлено (29.08.2015, 17:46)
---------------------------------------------
Сделал замер несколько раз , проверка проходит примерно за 3000 миллисекунд. 15-30 секунд даже и рядом нету.

tumkin Дата: Суббота, 29.08.2015, 18:51 | Сообщение # 5
Tumkin Project
Сообщений: 1186
Статус: Offline
Цитата exocode ()
Сделал замер несколько раз , проверка проходит примерно за 3000 миллисекунд. 15-30 секунд даже и рядом нету.

Ты сделай првоерку на несуществующий сайт


exocode Дата: Суббота, 29.08.2015, 21:18 | Сообщение # 6
Любитель
Сообщений: 34
Статус: Offline
Цитата tumkin ()
Ты сделай првоерку на несуществующий сайт

Сделал , ответ пришёл за 8000 м\с опять же не пахнет тут 15-30ью секундами.
tumkin Дата: Суббота, 29.08.2015, 23:41 | Сообщение # 7
Tumkin Project
Сообщений: 1186
Статус: Offline
Цитата exocode ()
Сделал , ответ пришёл за 8000 м\с опять же не пахнет тут 15-30ью секундами.

Господи, я писал образно, просто мой метод работает быстрее и его удобней использовать


exocode Дата: Воскресенье, 30.08.2015, 11:21 | Сообщение # 8
Любитель
Сообщений: 34
Статус: Offline
Цитата tumkin ()
я писал образно

Так зачем тогда утверждать?
P.S Я возможно не увижу разницу ведь в моем коде проверка используется всего один раз.

Добавлено (30.08.2015, 11:21)
---------------------------------------------
+ Проверил ваш скрипт , на несуществующем сайте , на все про всё уходит 7000мс , в моем 8000-8500мс , разница маленькая , но получается что ваш быстрее , потому его советуется использовать. Оптимизация какая никакая а есть.
P.S Использовать можно.

tumkin Дата: Воскресенье, 30.08.2015, 15:31 | Сообщение # 9
Tumkin Project
Сообщений: 1186
Статус: Offline
Цитата exocode ()
P.S Я возможно не увижу разницу ведь в моем коде проверка используется всего один раз.

А если ты используешь скрипт, который постоянно подключается к сайту? То тогда придется постоянно проверять есть ли соединение с сайтом, чтобы скрипт не зависал. Если нету соединения, то например появляется msgbox и нас предупреждает о том, что сервер не работает.
Ведь сначала сайт может работать, а потом перестать и скрипт начнет жестко зависать - это же AHK


Форум » Программирование » AHK Программирование » [Урок] Проверка доступности сайта (Проверяем доступен ли сайт.)
  • Страница 1 из 1
  • 1
Поиск:
Статистика Форума
Лучшие пользователи
Admin [39113]

GеNius [7209]

[CM]Russel [5557]

kenlo763 [4952]

[CM]AGRESSOR [4639]

Snake_Firm [4452]

Сэс [4416]

Artem_Buero [4223]

[CM]Durman [3204]

[CM]Рафаэль [3080]

iMaddy [2855]

sky_Woker [2854]

getrekt [2745]

Новые пользователи
pokotiloroman91 [18:24]

stephensh5 [12:00]

calliesv7 [06:11]

louqm16 [22:14]

artushak [16:32]

Kingpolker [15:42]

leeyv11 [15:12]

Trappa17 [01:00]

Djamalchik [16:40]

ajeense [14:24]

654470559 [08:55]

Newtone [03:01]

godspeed [21:31]