Mit der PHP-Guzzle-HTTP-6 zum senden von JSON-Daten, die bereits codiert
Ich bin versucht, senden Sie eine POST-Anforderung enthält einen rohen JSON-string mit der folgenden Kopfzeile: Content-Type: application/json
.
Aus der Suche in den docs, ich kann sehen, dass ich etwas tun kann, wie dieses...
$data = ['x' => 1, 'y' => 2, 'z' => 3];
$client = new \GuzzleHttp\Client($guzzleConfig);
$options = [
'json' => $data,
];
$client->post('http://example.com', $options);
Mein problem ist, dass wenn ich zu diesem Zeitpunkt $data
bereits json_encode
'd....
Ich habe Folgendes versucht, aber es funktioniert nicht.
$data = json_encode(['x' => 1, 'y' => 2, 'z' => 3]);
$client = new \GuzzleHttp\Client($guzzleConfig);
$options = [
'body' => $data,
'headers' => ['Content-Type' => 'application/json'],
];
$client->post('http://example.com', $options);
Meine Frage ist: kann ich die json
option mit einer bereits-codiert array? Oder gibt es eine Möglichkeit für mich, um einfach die Content-Type
header?
- Ich weiß, das ist ein bisschen schäbig, aber können nicht passieren Sie
json_decode($data)
in sich selbst zurück :/ - Ich habe Bedenken, dass, aber dieses Stück code ausgeführt wird, Tausende Male am Tag, und es scheint, un-nötig, da muss es einen Weg geben, dies zu tun. Alles, was ich zu tun ist, legen Sie ein Content-Type-header
Du musst angemeldet sein, um einen Kommentar abzugeben.
Entsprechend zu saufen, ist docs http://docs.guzzlephp.org/en/latest/request-options.html#json
Können Sie die bereits codierten json direkt in den Körper-parameter
Saufen, bietet auch die
json
Anfrage-option, die automatisch codieren Ihre Inhalte und legen Sie dieContent-Type
header. Mehr Informationen unter dem link. In der Tat das Beispiel verwendet eine PUT-Anfrage.