web-dev-qa-db-fra.com

Publiez des données et récupérez la réponse en utilisant PHP Curl?

Je suis très nouveau dans le travail avec les services Web, et donc je trouve cela assez déroutant.

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

Ce que je me demande, si je le fais, 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

26
Elliot

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.

57
András Szepesházi

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
dmcnelis

Le comportement par défaut de Curl consiste à 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.

5
ayush