Опубликовать данные и получить ответ с помощью PHP Curl? - PullRequest
24 голосов
/ 09 февраля 2011

Я очень плохо знаком с работой с веб-сервисами, и поэтому я нахожу это довольно запутанным.

Если у меня есть URL-адрес, на который я пытаюсь опубликовать некоторые данные JSON, я понимаю, как это сделать, используя метод CURL PHP.

Что мне интересно, так это то, что если я делаю это, а URL-адрес имеет какой-то ответ сервера ... как мне получить этот ответ в своем php и использовать его для выполнения различных действий в PHP соответственно?

Спасибо!

-Elliot

Ответы [ 3 ]

55 голосов
/ 09 февраля 2011

Вам необходимо установить для параметра CURLOPT_RETURNTRANSFER значение 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);

Ответ на ваш запрос будет доступен в переменной $ result.

8 голосов
/ 09 февраля 2011

Если вы имеете в виду различные действия для разных кодов ответов HTTP, то вы можете сделать что-то вроде:

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

$httpResponseCode = $responseInfo['http_code'];
4 голосов
/ 09 февраля 2011

Поведение Curl по умолчанию - просто выгрузить данные, которые вы вернете обратно в браузер.Чтобы вместо этого перехватить его в переменную, вам необходимо:

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

Также вы можете использовать parse_string в этом $ txResult для правильного форматирования.

...