Ich versuche, JSON-Inhalt an einen Remote-REST-Endpunkt zu senden, der Inhalt scheint jedoch bei Lieferung leer zu sein. Alle anderen Header usw. werden korrekt empfangen und der Webdienst wird erfolgreich mit einem browserbasierten Testclient getestet.PHP - JSON über file_get_contents posten
Gibt es ein Problem mit meiner Syntax unten, wo ich das Feld 'Inhalt' angeben?
$data = array("username" => "duser", "firstname" => "Demo", "surname" => "User", "email" => "[email protected]");
$data_string = json_encode($data);
$result = file_get_contents('http://test.com/api/user/create', null, stream_context_create(array(
'http' => array(
'method' => 'POST',
'header' => array('Content-Type: application/json'."\r\n"
. 'Authorization: username:key'."\r\n"
. 'Content-Length: ' . strlen($data_string) . "\r\n"),
'content' => $data_string)
)
));
echo $result;
Dank Das hat super funktioniert! – Ben
Falls jemand auf das Problem stößt, dass die Post-Daten nicht korrekt codiert sind (jeder Schlüssel des Wörterbuchs hat am Anfang einen "amp;"): Ändern Sie die dritte Zeile in $ postdata = http_build_query ($ data, ' ',' &'); – Philipp