Я сводил к простейшей форме и все еще спотыкаюсь ... Я провел более 30 часов исследований и испытаний. По всем постам, которые никогда не показывают больше 15 ° всего круга, это должно быть очень легко.JSON полный круг (PHP)
Я хочу:
- параметры Отправить запрос (в формате JSON) из телефона Android на сервер WAMP ... Это может быть как полный дамп локальной таблицы SQLite, поэтому строки запроса просто не отрежет.
- Есть сервер WAMP читать данные в формате JSON, формулировать запрос SQL и представить в базу данных MySql
- Пакет ответа в данных JSON (от простого «OK» для полного дампа таблицы)
- Вернуться ответ пакет на телефон Android
Это уже полностью функциональное приложение WAMP, и я хочу интегрировать Android-доступ. По этой причине я действительно хочу избежать AJAX, так как хочу поддерживать согласованность с тем, что уже на месте.
Я уменьшил это до простейшего цикла и попал в коряги. Я использую send.php для отправки некоторых данных JSON на get.php. На данный момент мне просто нужно получить.php, чтобы прочитать данные и отправить их обратно (слегка измененный) на send.php
send.php правильно читает запас JSON, отправленный из receive.php. Я просто не могу получить никаких признаков жизни, которые receive.php даже признает отправленный JSON.
ПОЖАЛУЙСТА, не направляйте меня в направлении cURL ... из всего, что я нашел в отношении Android и JSON, cURL - это тангенс, который вернет мне полный круг обратно в нефункциональность.
APACHE 2.2.22, PHP 5.4.3
Как я уже сказал, я свел к простейшей форме, чтобы продемонстрировать полный круг ...
send.php:
<?php
$url = "http://192.168.0.102:808/networks/json/receive.php";
$data = array(
'param1' => '12345',
'param2' => 'fghij'
);
$json_data = json_encode($data);
$options = array(
'http' => array(
'method' => 'POST',
'content' => $json_data,
'header'=> "Content-Type: application/json\r\n" .
"Accept: application/json\r\n" .
'Content-Length: ' . strlen($json_data) . "\r\n"
)
);
$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);
$response = json_decode($result , true);
echo '[' . $response['param1'] . "]\n<br>";
//THIS WORKS! send.php displays "Initialized"
?>
receive.php
<?php
$newparam = 'Initialized';
//HERE I NEED TO read the JSON data and do something
$data = array(
'param1' => $newparam,
'param2' => 'pqrst'
);
header('Content-type: application/json');
echo json_encode($data);
?>
Внутри использования receive.php 'error_log () 'искать признаки жизни. – mkaatman
@ user2147564 Попробуйте json_decode ($ data), когда вы читаете (в приеме.php) данные JSON, которые были отправлены. – kalaero
isset ($ _ POST) возвращает true, но, похоже, ничего не содержит. Если я попытаюсь получить доступ к $ _POST ['content'], который кажется логичным из отправленного отправителя _by_ send.php, там ничего нет (ошибка). Я знаю, что мне нужно json_decode ($ data_from_send_php), но как я могу получить входящие данные JSON? – Chameleon