Обработка json POST

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

Модератор: immortal

maleha
Сообщения: 19
Зарегистрирован: Пн окт 24, 2016 7:39 pm
Благодарил (а): 3 раза
Поблагодарили: 1 раз

Re: Обработка json POST

Сообщение maleha » Ср янв 11, 2017 6:06 pm

И еще дурной вопрос. Пока просто в скрипте вывожу сами параметры say($params) и в истории эти сообщения появлятются как бы 2 часа назад. Откуда оно берет это время ??
olehs
Сообщения: 1115
Зарегистрирован: Вс июн 14, 2015 11:08 am
Благодарил (а): 85 раз
Поблагодарили: 342 раза

Re: Обработка json POST

Сообщение olehs » Ср янв 11, 2017 6:13 pm

maleha писал(а):Спасибо. Отлично работает. Если не сложно могли бы обьяснить как этот код работает. Почему строка автоматом попадает в $params ?
Второй аргумент runScript используется как раз для передачи параметров в сценарий. А код передает туда напрямую тело POST'а
olehs
Сообщения: 1115
Зарегистрирован: Вс июн 14, 2015 11:08 am
Благодарил (а): 85 раз
Поблагодарили: 342 раза

Re: Обработка json POST

Сообщение olehs » Ср янв 11, 2017 6:16 pm

maleha писал(а):И еще дурной вопрос. Пока просто в скрипте вывожу сами параметры say($params) и в истории эти сообщения появлятются как бы 2 часа назад. Откуда оно берет это время ??
Windows? Какой часовой пояс?
maleha
Сообщения: 19
Зарегистрирован: Пн окт 24, 2016 7:39 pm
Благодарил (а): 3 раза
Поблагодарили: 1 раз

Re: Обработка json POST

Сообщение maleha » Ср янв 11, 2017 6:26 pm

linux. часовой пояс правильный. если запустить скрипт postSqript вручную то время записи пишет текущее. а если его запускать через внешний php время записи в истории ровно на 2 часа назад ....
olehs
Сообщения: 1115
Зарегистрирован: Вс июн 14, 2015 11:08 am
Благодарил (а): 85 раз
Поблагодарили: 342 раза

Re: Обработка json POST

Сообщение olehs » Ср янв 11, 2017 6:30 pm

я добавил в пример выше еще один инклуд. попробуйте с ним
За это сообщение автора olehs поблагодарил:
maleha (Ср янв 11, 2017 6:36 pm)
Рейтинг: 1.16%
maleha
Сообщения: 19
Зарегистрирован: Пн окт 24, 2016 7:39 pm
Благодарил (а): 3 раза
Поблагодарили: 1 раз

Re: Обработка json POST

Сообщение maleha » Ср янв 11, 2017 6:36 pm

Спасибо ! Терь все отлично.
OlegM
Сообщения: 97
Зарегистрирован: Пт май 15, 2015 3:28 pm
Благодарил (а): 1 раз
Поблагодарили: 7 раз

Re: Обработка json POST

Сообщение OlegM » Вт фев 13, 2024 6:50 pm

olehs писал(а):
Ср янв 11, 2017 5:33 pm
maleha писал(а):Я правильно понял. postScript это уже сценарий в MD ?
да
Нет такого сценария и не было никогда в majordomo.
John
Сообщения: 43
Зарегистрирован: Пн ноя 10, 2014 1:52 pm
Благодарил (а): 14 раз
Поблагодарили: 1 раз

Re: Обработка json POST

Сообщение John » Вс мар 16, 2025 2:00 pm

Наверное это очень простой вопрос, но мучаюсь с ним уже дней пять (((
Есть реле Sonoff управляется по локалке из Chrome через расширение Yet Another REST Client запросом POST вида.

http://192.168.0.118:8081/zeroconf/switches
{
"sequence": "1742028997742",
"deviceid": "10022b943a",
"selfApikey": "88361d6a-74b0-4241-8965-a9b25d3b17f8",
"iv": "MTA1ODA3MDE3NDM3ODI1OA==",
"encrypt": true,
"data": "R9jey0dlgbLaU58wNhJHZ2bQ9rtN1wFv8S5vDYnOMhFKOJYmhQQqmriL8OSaJFUx"
}

И вот не могу заставить MDM посылать этот запрос, штудировал форум, пытался переделать приведенные примеры и все никак (((

Последнее что пробовал это создал скрипт на сервере и вызываю его через runScript

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

<?php
$url = 'http://192.168.0.118:8081/zeroconf/switches';

$headers = ['Content-Type: application/json']; // заголовки нашего запроса

$post_data = [ // поля нашего запроса
	'sequence' => '1742028997742',
	'deviceid' => '10022b943a',
	'selfApikey' => '88361d6a-74b0-4241-8965-a9b25d3b17f8',
	'iv' => 'NjAzMjk2NjM2MzcwNjk0NA==',
	'encrypt' => true,
	'data' => 'R9jey0dlgbLaU58wNhJHZ2bQ9rtN1wFv8S5vDYnOMhFKOJYmhQQqmriL8OSaJFUx',
];

$data_json = json_encode($post_data); // переводим поля в формат JSON

$curl = curl_init();
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_VERBOSE, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data_json);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_POST, true);

$result = curl_exec($curl); // результат POST запроса
?>
Но он тоже не работает, Charles показывает полную фигню
Jilber
Сообщения: 712
Зарегистрирован: Ср май 03, 2017 7:41 pm
Благодарил (а): 117 раз
Поблагодарили: 112 раз

Re: Обработка json POST

Сообщение Jilber » Вс мар 16, 2025 2:13 pm

Это сценарий ? Разве в сценарии "<?php" и "?>" не лишнее ?
John
Сообщения: 43
Зарегистрирован: Пн ноя 10, 2014 1:52 pm
Благодарил (а): 14 раз
Поблагодарили: 1 раз

Re: Обработка json POST

Сообщение John » Вс мар 16, 2025 2:34 pm

Нет это файл с названием pospScript.php на сервере, если код вставить в сценарий без "<?php" и "?>", то он тоже не работает
Ответить