Poster des données et récupérer la réponse en utilisant PHP Curl?

Je suis très nouveau pour travailler avec les services web, et donc je trouve cela assez déroutant.

Si j'ai une URL à laquelle j'essaie de poster des données JSON, je comprends comment le faire en utilisant la méthode CURL PHP.

Ce que je me demande est, si je fais cela, et l'URL a une sorte de réponse du serveur.. Comment puis-je obtenir cette réponse dans mon php et l'utiliser pour prendre différentes actions dans le PHP en conséquence?

Merci!

-Elliot

23
demandé sur Elliot 2011-02-09 18:37:48

3 réponses

Vous devrez définir L'option CURLOPT_RETURNTRANSFER sur true.

$ch = curl_init($url);

curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);

curl_close($ch);

La réponse à votre demande sera disponible dans la variable $ result.

52
répondu András Szepesházi 2011-02-09 15:44:49

Si vous faites référence à différentes actions pour différents codes de réponse HTTP, vous pouvez faire quelque chose comme:

$response = curl_exec($req);
$responseInfo = curl_getinfo($req);

$httpResponseCode = $responseInfo['http_code'];
8
répondu dmcnelis 2016-09-27 00:31:41

Le comportement par défaut de Curl est de simplement vider les données que vous récupérez dans le navigateur. Pour le capturer à la place dans une variable, vous avez besoin de:

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$txResult = curl_exec($ch);

Vous pouvez également utiliser parse_string sur ce $txResult pour le formater correctement.

3
répondu ayush 2011-02-09 15:53:50