如何在 PHP 中使用 cURL 获取响应

2022-08-30 08:18:55

我想要一个独立的PHP类,我希望有一个通过cURL调用API并获取响应的函数。有人可以帮我吗?

谢谢。


答案 1

只需使用下面的代码片段从宁静的Web服务URL获取响应,我使用社交提及URL。

$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 "</pre>";

function get_web_page($url) {
    $options = array(
        CURLOPT_RETURNTRANSFER => true,   // return web page
        CURLOPT_HEADER         => false,  // don't return headers
        CURLOPT_FOLLOWLOCATION => true,   // follow redirects
        CURLOPT_MAXREDIRS      => 10,     // stop after 10 redirects
        CURLOPT_ENCODING       => "",     // handle compressed
        CURLOPT_USERAGENT      => "test", // name of client
        CURLOPT_AUTOREFERER    => true,   // set referrer on redirect
        CURLOPT_CONNECTTIMEOUT => 120,    // time-out on connect
        CURLOPT_TIMEOUT        => 120,    // time-out on response
    ); 

    $ch = curl_init($url);
    curl_setopt_array($ch, $options);

    $content  = curl_exec($ch);

    curl_close($ch);

    return $content;
}

答案 2

解决方案的关键是设置

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);

推荐