SmartLiving.ru

Обсуждение проекта
 
Текущее время: Сб фев 25, 2017 10:10 am

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 16 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Обработка json POST
СообщениеДобавлено: Ср янв 11, 2017 1:45 pm 
Не в сети

Зарегистрирован: Пн окт 24, 2016 7:39 pm
Сообщения: 15
Благодарил (а): 3 раз.
Поблагодарили: 1 раз.
Сорри если где то обсуждалось но не нашел... Есть сторонний веб сервис, который время от времени передает информацию MD. Передает определенное количество данных, но данные это текст в киррилице. Хочу передавать данные json. Но вот как принять данные в MD не понимаю. В PHP не силен. Как я понимаю надо вызвать сценарий и в нем принять json. Но как обработать POST запрос не знаю. Может подскажите в какую сторону копать ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Обработка json POST
СообщениеДобавлено: Ср янв 11, 2017 4:19 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Вс авг 03, 2014 8:17 pm
Сообщения: 342
Откуда: Украина, Запорожье
Благодарил (а): 50 раз.
Поблагодарили: 58 раз.
Самый банальный пример:
Создать скрипт.
Добавить в него код:
Код:
$command=$params['command'];
echo $command;

И тогда при запросе:
Код:
http://localhost/objects/?script=Test&command=test_data   

Будет отображена информация которая идёт после "command=", то есть будет отображен текст: "test_data".
В примере выше, имя скрипта "Test".

Замените "test_data" на Ваш JSON в POST запросе, и смотрите как парсится JSON в PHP.

_________________
CONNECT
Текущий сервер системы: HP ProLiant DL360 G4p Debian 8 x64
Старый сервер: Intel D410PT(B) в корпусе: CFI Group CFI-A8989


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Обработка json POST
СообщениеДобавлено: Ср янв 11, 2017 4:26 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Вс авг 03, 2014 8:17 pm
Сообщения: 342
Откуда: Украина, Запорожье
Благодарил (а): 50 раз.
Поблагодарили: 58 раз.
Кодируйте предварительно кириллицу перед отправкой. Например при помощи BASE64.

_________________
CONNECT
Текущий сервер системы: HP ProLiant DL360 G4p Debian 8 x64
Старый сервер: Intel D410PT(B) в корпусе: CFI Group CFI-A8989


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Обработка json POST
СообщениеДобавлено: Ср янв 11, 2017 4:32 pm 
Не в сети

Зарегистрирован: Пн окт 24, 2016 7:39 pm
Сообщения: 15
Благодарил (а): 3 раз.
Поблагодарили: 1 раз.
Я так пробывал )) только скрипт отрабатывает только при методе GET.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Обработка json POST
СообщениеДобавлено: Ср янв 11, 2017 4:40 pm 
Не в сети

Зарегистрирован: Пн окт 24, 2016 7:39 pm
Сообщения: 15
Благодарил (а): 3 раз.
Поблагодарили: 1 раз.
И кодировать не могу. С той стороны Sharepoint .. в котором я не могу править код рабочих процессов (((


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Обработка json POST
СообщениеДобавлено: Ср янв 11, 2017 5:01 pm 
Не в сети

Зарегистрирован: Чт авг 21, 2014 8:28 am
Сообщения: 321
Откуда: Киров, Россия
Благодарил (а): 109 раз.
Поблагодарили: 112 раз.
Попробуйте такой код:
Код:
<?php

$content 
= file_get_contents("php://input");

//Для отладки можно записать в лог принятые данные
$today_file = 'log_' . date('Y-m-d') . '.txt';
$data = date("H:i:s")." " . $content . "\n";
file_put_contents($today_file, $data, FILE_APPEND | LOCK_EX);

//Дальше можно обрабатывать принятые данные
$array = json_decode($content, TRUE);

?>

В коде сценариев и методов не проверял. А просто в php-скрипте работает у меня на приеме POST-запросов от Telegram. Он тоже в JSON шлет.

_________________
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Обработка json POST
СообщениеДобавлено: Ср янв 11, 2017 5:05 pm 
Не в сети

Зарегистрирован: Вс июн 14, 2015 11:08 am
Сообщения: 413
Благодарил (а): 41 раз.
Поблагодарили: 93 раз.
/objects не обрабатывает POST-запросы. Вам нужно написать свой скрипт.
Вот для примера с вызовом сценария по имени postScript и передачей в него тела запроса
Код:
<?php

chdir
(dirname(__FILE__));

include_once(
"./config.php");
include_once(
"./lib/loader.php");

$db = new mysql(DB_HOST, '', DB_USER, DB_PASSWORD, DB_NAME); // connecting to database
include_once("./load_settings.php");

runScript("postScript", file_get_contents('php://input'));

$db->Disconnect(); // closing database connection

Естественно, нужно добавить проверки и т.д.

В сценарии строка с текстом будет в $params


Последний раз редактировалось olehs Ср янв 11, 2017 6:29 pm, всего редактировалось 2 раз(а).

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Обработка json POST
СообщениеДобавлено: Ср янв 11, 2017 5:31 pm 
Не в сети

Зарегистрирован: Пн окт 24, 2016 7:39 pm
Сообщения: 15
Благодарил (а): 3 раз.
Поблагодарили: 1 раз.
Я правильно понял. postScript это уже сценарий в MD ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Обработка json POST
СообщениеДобавлено: Ср янв 11, 2017 5:33 pm 
Не в сети

Зарегистрирован: Вс июн 14, 2015 11:08 am
Сообщения: 413
Благодарил (а): 41 раз.
Поблагодарили: 93 раз.
maleha писал(а):
Я правильно понял. postScript это уже сценарий в MD ?

да


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Обработка json POST
СообщениеДобавлено: Ср янв 11, 2017 6:03 pm 
Не в сети

Зарегистрирован: Пн окт 24, 2016 7:39 pm
Сообщения: 15
Благодарил (а): 3 раз.
Поблагодарили: 1 раз.
Спасибо. Отлично работает. Если не сложно могли бы обьяснить как этот код работает. Почему строка автоматом попадает в $params ?


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 16 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB