2016-06-13 11 views
1

Ich habe diesen einfachen Codeerweiterte REST-Client sendet keine POST-Daten

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

und wenn ich POST-Daten mit Advanced REST cliend senden, haben jeden eine leere Tabelle $ _POST. enter image description here

+0

Warum haben Sie nichts in der Nutzlast? Sie müssen die JSON-Daten in diesen Abschnitt einfügen – ShaneOH

+0

Ich schrieb diese Daten '{ " Name ":" Test " }' und nichts geändert – dios231

+0

@ Dios231 PHP weiß nicht, wie JSON nativ zu analysieren. Ändern Sie die Raw-Header in 'multipart/form-data' und ändern Sie die rohe Payload in' name = test' – bassxzero

Antwort

2

Sie verwenden eine falsche Transportmethode. Wenn Sie POST-Daten im $ _POST-Array lesen wollen, müssen Sie es entweder als multipart oder als www-Formular urlencoded senden.

die Anfrage Körper lesen Sie folgenden Code verwenden:

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

Dann können Sie die JSON parsen und sie verändern zu widersprechen.

Wenn Sie die Daten aus der Anforderung mit $_POST Array Sie Content-Type-Header application/x-www-form-urlencoded festlegen müssen lesen möchten und die Daten als senden:

param-name=param+value 

(beachten Sie, dass es url codiert ist).

+0

Diese Information ist Gold! Ernsthaft danke! –