getURL

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

Chainik
Сообщения: 1462
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 260 раз
Поблагодарили: 454 раза

Re: getURL

Сообщение Chainik » Пт апр 20, 2018 11:33 pm

А что, если вместо getURL попробовать file_get_contents
Ну типа

Код: Выделить всё

file_get_contents("http://192.168.1.55/?action=go");
fandaymon
Сообщения: 1553
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 574 раза

Re: getURL

Сообщение fandaymon » Пт апр 20, 2018 11:34 pm

GetURLBackground исправит только проблему часиков, мажордомо не будет ждать ответа от урла, который он запросил. Если такой функции нету, то судя по common.class.php можно использовать доппараметры getURL, а именно $background=true

function getURL($url, $cache = 0, $username = '', $password = '', $background = false)
Аватара пользователя
Bagir
Сообщения: 1613
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич
Благодарил (а): 212 раз
Поблагодарили: 374 раза

Re: getURL

Сообщение Bagir » Сб апр 21, 2018 12:51 am

К слову о задержках. Чтобы долго не ждать ответа, например если запрашиваемый ресурс предположительно может быть недоступен, но в штатном режиме он отвечает сразу, можно сделать как то так:

Код: Выделить всё

$ctx = stream_context_create( array( 'http' => array('timeout'=>2) ) );
$dt = trim(file_get_contents($cmdUrl, 0, $ctx));
где $cmdUrl адрес, а $dt ответ.
'timeout'=>2 ждем ответа только пару секунд.
Отсутствие ответа можно легко обработать посмотрев на содержание $dt
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm
Благодарил (а): 42 раза
Поблагодарили: 262 раза

Re: getURL

Сообщение Alex » Сб апр 21, 2018 6:52 am

тезка расстраиваешь
viewtopic.php?f=6&t=5044&p=71082&hilit= ... %B9#p71050
https://majordomo.smartliving.ru/forum/ ... und#p55185
хз, поможет, но вроде б для того и сделано, синтаксис тот же getURL("http://192.168.1.55/?action=go", 0);
Судя по описанию это то, что нужно, но я ничего не придумал,

Call to undefined function getURLBackground()

это то, что ответила система на попытку использовать эту функцию, причём getURL() в этом же месте работает.
function getURL($url, $cache = 0, $username = '', $password = '', $background = false)
А можно написать готовый вариант этой функции? Что-то я не догоняю как указать ей один из трёх аргументов ($background=true ).
А что, если вместо getURL попробовать file_get_contents
Попробую...
Написано же - вызывается ссылкой со страницы MajorDoMo. Т.е. есть какая-то страница Мажордомо, на которой есть ссылка, по клику на которую должен вызываться сценарий? Причём сценарий не мажордомо, а какого-то другого контроллера?
Всё очень просто: задача стоит послать GET со страницы MajorDoMo (именно со страницы!) ничего лучше, как вызвать скрипт MajorDoMo со встроенной командой getURL я не придумал — и это работает, только потом появляется пустая страница.
fandaymon
Сообщения: 1553
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 574 раза

Re: getURL

Сообщение fandaymon » Сб апр 21, 2018 11:33 am

Alex писал(а):
Сб апр 21, 2018 6:52 am

А можно написать готовый вариант этой функции? Что-то я не догоняю как указать ей один из трёх аргументов ($background=true ).
getURL("http://192.168.1.55/?action=go", 0,"","",true);


Всё очень просто: задача стоит послать GET со страницы MajorDoMo (именно со страницы!) ничего лучше, как вызвать скрипт MajorDoMo со встроенной командой getURL я не придумал — и это работает, только потом появляется пустая страница.
Скрипт=Сценарий в котором записано GetUrl? Если так то конечно будет белая страница - когда запускается сценарий по клику то он выдаёт результат своей работы - в данном случае пустую страницу.
Я поэтому спрашиваю - как именно организован вызов скрипта со страницы и как эта страница возникает (кто её формирует)
Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm
Благодарил (а): 42 раза
Поблагодарили: 262 раза

Re: getURL

Сообщение Alex » Сб апр 21, 2018 5:52 pm

getURL("http://192.168.1.55/?action=go", 0,"","",true);
Спасибо, попробую...
Скрипт=Сценарий в котором записано GetUrl? Если так то конечно будет белая страница - когда запускается сценарий по клику то он выдаёт результат своей работы - в данном случае пустую страницу.
Я поэтому спрашиваю - как именно организован вызов скрипта со страницы и как эта страница возникает (кто её формирует)
Вообще без разницы — подойдёт любой способ передачи GET запроса контроллеру со страницы MajorDoMo, лишь бы он был рабочим и без побочных эффектов в виде пустой страницы и прочего.
fandaymon
Сообщения: 1553
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 574 раза

Re: getURL

Сообщение fandaymon » Сб апр 21, 2018 5:57 pm

Alex писал(а):
Сб апр 21, 2018 5:52 pm
getURL("http://192.168.1.55/?action=go", 0,"","",true);
Спасибо, попробую...
Скрипт=Сценарий в котором записано GetUrl? Если так то конечно будет белая страница - когда запускается сценарий по клику то он выдаёт результат своей работы - в данном случае пустую страницу.
Я поэтому спрашиваю - как именно организован вызов скрипта со страницы и как эта страница возникает (кто её формирует)
Вообще без разницы — подойдёт любой способ передачи GET запроса контроллеру со страницы MajorDoMo, лишь бы он был рабочим и без побочных эффектов в виде пустой страницы и прочего.
Ну например сделать сцену, на сцену добавить html элемент, где по клику выполняется сценарий. В сценарии добавить GetURL - всё. Получится страничка с элементом, при клике на который уйдёт get, но сама страничка останется
Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm
Благодарил (а): 42 раза
Поблагодарили: 262 раза

Re: getURL

Сообщение Alex » Сб апр 21, 2018 6:14 pm

Ну например сделать сцену, на сцену добавить html элемент
Нет! Задача состоит в том, чтобы сделать это со страницы, со сценами проблем нет.
fandaymon
Сообщения: 1553
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 574 раза

Re: getURL

Сообщение fandaymon » Сб апр 21, 2018 6:26 pm

Alex писал(а):
Сб апр 21, 2018 6:14 pm
Ну например сделать сцену, на сцену добавить html элемент
Нет! Задача состоит в том, чтобы сделать это со страницы, со сценами проблем нет.
А какая разница? Открой сцену как страницу и будет тебе счастье.

Ну ещё можно наверное попробовать по клику через Javascript вызвать get со сценарием test, а тот в свою очередь отправит get контроллеру
$.get("/objects/?script=test");
За это сообщение автора fandaymon поблагодарил:
Alex (Вс апр 22, 2018 11:27 am)
Рейтинг: 1.16%
Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm
Благодарил (а): 42 раза
Поблагодарили: 262 раза

Re: getURL

Сообщение Alex » Сб апр 21, 2018 7:44 pm

А какая разница?
Ёлки-палки раза четыре повторил, что задача состоит в работе со страницы, а не со сцены.
Ну ещё можно наверное попробовать по клику через Javascript вызвать get со сценарием test, а тот в свою очередь отправит get контроллеру
$.get("/objects/?script=test");
Да, подобный вариант я уже продумывал, но пока не реализовал.
Ответить