Возврат результата JSON из веб-службы PHP REST - PullRequest
3 голосов
/ 19 апреля 2011

У меня есть веб-сервис REST, написанный на PHP, и я вызываю его с помощью запроса POST (для этого используется curl).Веб-сервис должен вернуть документ JSON.Проблема в том, что я не уверен, как правильно отправить этот документ обратно клиенту веб-службы.Достаточно ли просто отразить это?

Сейчас это выглядит так, как будто это единственный способ, которым я могу заставить документ JSON появляться в результате запроса POST (переменная $ result):

$result = curl_exec($ch);

Ответы [ 3 ]

18 голосов
/ 19 апреля 2011

Вы можете отформатировать свой результат в массиве или объекте, а затем просто скопировать его с заголовками json.т.е.

$result_json = array('name' => 'test', 'age' => '16');

// headers for not caching the results
header('Cache-Control: no-cache, must-revalidate');
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');

// headers to tell that result is JSON
header('Content-type: application/json');

// send the result now
echo json_encode($result_json);

Надеюсь, это поможет, спасибо

0 голосов
/ 14 июня 2019

Чтобы получить результат json из php, вы должны использовать

echo json_encode($result_json)

но echo не выходит из программы, поэтому после использования echo лучше выйти из программы, но для краткости вы можете использовать

exit(json_encode($result_json));
0 голосов
/ 19 апреля 2011

Я реализовал это несколько раз, и я отправлял его в виде строки в WS и возвращал обратно из WS в качестве ответа снова в виде строки. Для этого я использовал функции json_encode и json_decode ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...