0
- 05.02.2015 - 20:46
|
Есть интернет-ссылки (например http:\\82.34.2.1 или qwerty.asd.ru). Как средствами 1С проверить доступна ли эта интернет-ссылка. Задача в том, чтобы по таймеру проверять доступен ли сайт и в случае, если он "упадет" производить определенные действия. Спасибо! | |
1
- 05.02.2015 - 22:53
| Список "определенных действий" страшно интригует. Нельзя ли выложить? | |
2
- 05.02.2015 - 23:01
| Так вроде как хттп запрос никто не отменял. | |
3
- 06.02.2015 - 10:27
|
HTTPОтвет (HTTPResponse) КодСостояния (StatusCode) Использование: Только чтение. Описание: Тип: Число. Код состояния (ответа) HTTP-сервера. Подробности см. на: http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html. Доступность: Тонкий клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер). | |
4
- 07.02.2015 - 07:12
| Это надо сделать на 7.7. | |
5
- 07.02.2015 - 11:43
| Код: Function Ping(IPАдрес) objShell = Новый COMОбъект("WScript.Shell") ; objScriptExec = objShell.Exec("ping.exe -n 1 " + IPАдрес) ; strPingResults = НРег(objScriptExec.StdOut.ReadAll()); Возврат Найти(strPingResults, "ttl="); EndFunction | |
6
- 07.02.2015 - 13:52
| Не подходит. Нужная страница сайта открывается в браузере, но не пингуется. | |
7
- 07.02.2015 - 14:05
|
Так и делай на 77 Так пойдет ? или нужно асинхронно ? Скрипт=СоздатьОбъект("MSScriptControl.ScriptContro l"); Скрипт.language="javascript"; УРЛ="http://www.yandex.ru/"; ХТТПЗапрос = СоздатьОбъект("WinHttp.WinHttpRequest.5.1"); Скрипт.AddObject("ХТТПЗапрос",ХТТПЗапрос); Скрипт.Eval("ХТТПЗапрос.Option(2)=1251"); ХТТПЗапрос.Open("GET", УРЛ, 0); ХТТПЗапрос.SetRequestHeader("Accept-Language", "ru"); ХТТПЗапрос.SetRequestHeader("Accept-Charset", "Windows-1251"); ХТТПЗапрос.SetRequestHeader("Content-Language", "ru"); ХТТПЗапрос.SetRequestHeader("Content-Charset", "Windows-1251"); ХТТПЗапрос.SetRequestHeader("Content-Encoding", "gzip, deflate"); ХТТПЗапрос.SetRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=Windows-1251"); ХТТПЗапрос.SetRequestHeader("CACHE_CONTROL", "no-cache"); ХТТПЗапрос.SetRequestHeader("CONNECTION", "Keep-Alive"); ХТТПЗапрос.SetRequestHeader("USER_AGENT", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322)"); ХТТПЗапрос.SetAutoLogonPolicy(0); ХТТПЗапрос.SetProxy(0); ХТТПЗапрос.Send(); к=_GetPerformanceCounter(); Пока ХТТПЗапрос.Status<>200 Цикл Если _GetPerformanceCounter()-к>=2000 Тогда Сообщить("Страница "+УРЛ+" неотвечает. Пипец!","!!!"); КонецЕсли; Состояние("Ждем..."); КонецЦикла; | |
8
- 07.02.2015 - 14:10
| А что такое асинхронно :( | |
9
- 07.02.2015 - 14:13
| Что бы адинес дальше работала, в то время как идет проверка. | |
10
- 07.02.2015 - 14:13
| А как тут код вставлять чем нужно обрамить текст ? | |
11
- 07.02.2015 - 14:19
|
Текст обрамил :) Ввел адрес ссылки а в ответ ХТТПЗапрос.Send() {Справочник.Объекты.Форма.Модуль(28)**: WinHttp.WinHttpRequest: The operation timed out | |
12
- 07.02.2015 - 14:22
|
5-xxi > тогда уж просче Шел = СоздатьОбъект("WScript.Shell") ; Если Шел.Run("ping.exe -n 1 -w 100 " + IPАдрес,0,-1)<>0 Тогда Сообщить("Фигня какая то"); КонецЕсли; | |
13
- 07.02.2015 - 14:23
|
Писал выше. Страница не пингуется, но в интернет браузере открывается. Через пинг не подходит. | |
14
- 07.02.2015 - 14:24
| Ну и обрами "сенд" Попыткой Исключением, да и таймаут задается | |
15
- 07.02.2015 - 14:26
|
пример страницы - пинг не проходит, но она работает http://www.dom-chehov.ru/online.asp?cam=1 | |
16
- 07.02.2015 - 14:27
| А как задать тайм-аут? :( | |
17
- 07.02.2015 - 14:27
| ХТТПЗапрос.SetTimeouts(1000,1000,1000,1000); | |
18
- 07.02.2015 - 14:30
|
Не обижайся. Не работал с ХТТП. Куда это вставить? :)) | |
19
- 07.02.2015 - 14:31
| После создания объекта | |
20
- 07.02.2015 - 14:32
| + перед Опен | |
21
- 07.02.2015 - 14:38
|
Ошибку обработал: Попытка ХТТПЗапрос.Send(); Исключение Сообщить("ОШИБКА!"); Возврат 0; КонецПопытки; | |
22
- 07.02.2015 - 14:39
|
А что это проверяется? Если _GetPerformanceCounter()-к>=2000 Тогда Сообщить("Страница "+УРЛ+" неотвечает. Пипец!","!!!"); КонецЕсли; | |
23
- 07.02.2015 - 14:41
| 22-Pilot1C > Это если ресурс отвечает, а страничка не загружается (утрированно) | |
24
- 07.02.2015 - 14:44
| Спасибо!!! | |
25
- 07.02.2015 - 14:47
|
Еще сбоит на ХТТПЗапрос.Open("GET", УРЛ, 0); {Справочник.Объекты.Форма.Модуль(16)**: WinHttp.WinHttpRequest: The URL is invalid Обработаю Попытка-Исключение. А как получить доступ к типу ошибки - The URL is invalid - чтобы ее вывести? | |
26
- 07.02.2015 - 14:51
|
... Исключение Сообщить(ОписаниеОшибки()); ... | |
27
- 07.02.2015 - 15:04
| Спасибо!!! | |
28
- 07.02.2015 - 15:37
|
А можно если страница требует авторизации передать через ХТТПЗапрос.SetRequestHeader имя и пароль? | |
29
- 07.02.2015 - 15:43
|
Да, есть параметр SetCredentials если конечно это не авторизация в коде страницы, а серверная авторизация | |
30
- 07.02.2015 - 15:44
| если в коде, то POST | |
31
- 07.02.2015 - 19:17
|
следующим шагом будет - определять видна ли картинка с камеры :) | |
32
- 07.02.2015 - 19:19
| 31-xxi > Легко. | |
33
- 08.02.2015 - 00:18
| 32-smaharbA > А как? | |
34
- 08.02.2015 - 00:40
|
33-Pilot1C > самое простое, сделать скрин и по нему маску, но это муторно (маску) немного и нужны допущения. Да и не адинеснег я ), так иногда балуюсь. | |
35
- 08.02.2015 - 00:41
| Вернее не то, что бы скрин (это крайний вариант), а "поймать" поток и из него кадр(ы). | |
36
- 08.02.2015 - 00:45
| Пока еще мучаюсь не могу с авторизацией разобраться. | |
37
- 08.02.2015 - 00:55
|
36-Pilot1C > авторизация какая ? Серверная - когда окошко с запросом логина и пароля выходит (не на страничке) - тогда SetCredentials(...). Если на сайте типо поля ввода, то надо получить форму из страницы, поля логина и пароля (могут по разному именоваться), установить переменные в заголовке и выполнить хттп.Опен(ПОСТ, УРЛ, 0); | |
38
- 08.02.2015 - 01:01
| 2-Й вариант. | |
39
- 08.02.2015 - 01:05
|
Тогда, если страница не меняется, в смысле не нужно большой универсальности, то задать переменные, типа ХТТП.Open("POST", "http://...", -1); ХТТП.Send("login=VfsaPupkin&password=SuperPuper"); ... | |
| Интернет-форум Краснодарского края и Краснодара |