2016-06-13 1 views
1

У меня есть этот простой кодAdvanced REST клиент не отправляет данные POST

<?php 
$json = array("status" => $_POST['name']); 
header('Content-type: application/json'); 
echo json_encode($json); 
?> 

и когда я отправить данные POST с Advanced REST cliend, ВСЕГДА есть пустой $ _POST стол. enter image description here

+0

Почему у вас нет ничего полезного? Вам нужно вставить данные json в этот раздел – ShaneOH

+0

Я написал, что данные '{ " name ":" test " }' и ничего не изменилось – dios231

+0

@ dios231 php не знает, как изначально проанализировать json. Измените исходные заголовки на 'multipart/form-data' и измените необработанную полезную нагрузку на' name = test' – bassxzero

ответ

2

Вы используете неправильный транспорт. Если вы хотите прочитать данные POST в массиве $ _POST, вы должны отправить его либо как multipart, либо www form urlencoded.

Чтобы прочитать тело запроса вы должны использовать следующий код:

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

Затем вы можете разобрать JSON и превратить его в объект.

Если вы хотите, чтобы прочитать данные из запроса, используя $_POST массив, необходимо задать заголовок Content-Type в application/x-www-form-urlencoded и отправить данные, как:

param-name=param+value 

(обратите внимание, что она в кодировке URL).

+0

Эта информация Gold! Серьезно спасибо! –