Quelqu'un connaît-il la bonne façon d' post
utiliser JSON Guzzle
?
$request = $this->client->post(self::URL_REGISTER,array(
'content-type' => 'application/json'
),array(json_encode($_POST)));
Je reçois une internal server error
réponse du serveur. Cela fonctionne avec Chrome Postman
.
'json' => $data
: stackoverflow.com/a/44154428/842768Réponses:
Pour Guzzle 5 et 6, procédez comme suit :
Docs
la source
RequestOptions
constantes pour les touches du tableau d'options (GuzzleHttp\RequestOptions::JSON
dans ce cas) - cela rend les fautes de frappe plus faciles à détecter car elles deviennent soudainement des notifications au lieu de simplement des bogues silencieux attendant de causer des problèmes.jsson
par exemple) ne lèvera aucune erreur, et vous pourriez prendre un certain temps pour trouver votre faute de frappe.Pour Guzzle <= 4 :
C'est une demande de publication brute, donc mettre le JSON dans le corps a résolu le problème
la source
$client->post($url, ['body' => $string, 'headers' => ['Content-type' => 'application/json']]);
'json' => $data
: stackoverflow.com/a/44154428/842768La manière simple et basique (guzzle6):
Pour obtenir le code d'état de la réponse et le contenu du corps, j'ai fait ceci:
la source
Cela a fonctionné pour moi (en utilisant Guzzle 6)
la source
la source
['json' => $body]
c'est le meilleur moyen ici, comme le mentionne la réponse de Michael.$res->json();
ne fonctionne que dans Guzzle 5.3. Il a été supprimé dans la v6.json_decode()
plutôt.la source
Cela fonctionne pour moi avec Guzzle 6.2:
Selon la documentation guzzle, faites le json_encode
la source
Voir la documentation .
la source
Version Php: 5.6
Version de Symfony: 2.3
Guzzle: 5,0
J'ai récemment eu une expérience d'envoi de json avec Guzzle. J'utilise Symfony 2.3 donc ma version guzzle peut être un peu plus ancienne.
Je vais également montrer comment utiliser le mode débogage et vous pouvez voir la demande avant de l'envoyer,
Quand j'ai fait la demande comme indiqué ci-dessous j'ai obtenu la réponse réussie;
la source
La réponse de @ user3379466 peut être mise en œuvre en définissant
$data
comme suit:Ce dont notre projet avait besoin était d'insérer une variable dans un tableau à l'intérieur de la chaîne json, ce que j'ai fait comme suit (au cas où cela aiderait quelqu'un):
Donc, en
$existing_variable
étant, disons, 90210, vous obtenez:Il convient également de noter que vous voudrez peut-être également définir le
'Accept' => 'application/json'
si le point de terminaison que vous touchez se soucie de ce genre de chose.la source
$data
json_encode
$data = json_encode(array('collection' => $existing_variable));
@ user3379466 est correct, mais ici je réécris en entier:
--- Solution pour * Guzzle 6 * --- -package dont vous avez besoin:
la source
Les réponses ci-dessus n'ont pas fonctionné pour moi d'une manière ou d'une autre. Mais cela fonctionne bien pour moi.
la source
Utilisez simplement ceci, cela fonctionnera
la source