Как получить ответ, используя cURL в PHP - PullRequest
52 голосов
/ 29 июня 2011

Я хочу иметь отдельный класс PHP, где я хочу иметь функцию, которая вызывает API через cURL и получает ответ.Может ли кто-нибудь помочь мне в этом?

Спасибо.

Ответы [ 3 ]

103 голосов
/ 29 июня 2011

просто используйте приведенный ниже фрагмент кода, чтобы получить ответ от URL успокоительного веб-сервиса, я использую URL социального упоминания,

<code>$response = get_web_page("http://socialmention.com/search?q=iphone+apps&f=json&t=microblogs&lang=fr");
$resArr = array();
$resArr = json_decode($response);
echo "<pre>"; print_r($resArr); echo "
"; функция get_web_page ($ url) {$ options = array (CURLOPT_RETURNTRANSFER => true,// возвращаем веб-страницу CURLOPT_HEADER => false, // не возвращаем заголовки CURLOPT_FOLLOWLOCATION => true, // следуем за перенаправлениями CURLOPT_MAXREDIRS => 10, // останавливаемся после 10 перенаправлений CURLOPT_ENCODING => "", // обрабатываем сжатый CURLOPT_USERAGENT ="test", // имя клиента CURLOPT_AUTOREFERER => true, // установить реферер при перенаправлении CURLOPT_CONNECTTIMEOUT => 120, // тайм-аут при соединении CURLOPT_TIMEOUT => 120, // тайм-аут по ответу); $ ch = curl_init($ url); curl_setopt_array ($ ch, $ options); $ content = curl_exec ($ ch); curl_close ($ ch); вернуть $ content;}
65 голосов
/ 05 июня 2014

Суть решения заключается в установке

CURLOPT_RETURNTRANSFER => true

, а затем

$response = curl_exec($ch);

CURLOPT_RETURNTRANSFER говорит PHP сохранять ответ в переменной, а не выводить его на страницу, поэтому $ responseбудет содержать ваш ответ.Вот ваш самый основной рабочий код (я думаю, не проверял его):

// init curl object        
$ch = curl_init();

// define options
$optArray = array(
    CURLOPT_URL => 'http://www.google.com',
    CURLOPT_RETURNTRANSFER => true
);

// apply those options
curl_setopt_array($ch, $optArray);

// execute request and get response
$result = curl_exec($ch);
15 голосов
/ 26 февраля 2016

Если кто-то еще сталкивается с этим, я добавляю другой ответ, чтобы предоставить код ответа или другую информацию, которая может потребоваться в «ответе».

http://php.net/manual/en/function.curl-getinfo.php

// init curl object        
$ch = curl_init();

// define options
$optArray = array(
    CURLOPT_URL => 'http://www.google.com',
    CURLOPT_RETURNTRANSFER => true
);

// apply those options
curl_setopt_array($ch, $optArray);

// execute request and get response
$result = curl_exec($ch);

// also get the error and response code
$errors = curl_error($ch);
$response = curl_getinfo($ch, CURLINFO_HTTP_CODE);

curl_close($ch);

var_dump($errors);
var_dump($response);

Вывод:

string(0) ""
int(200)

// change www.google.com to www.googlebofus.co
string(42) "Could not resolve host: www.googlebofus.co"
int(0)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...