PHP Curl不会返回响应

时间:2014-09-06 20:12:47

标签: php curl

我正在尝试使用php中的curl从API获取响应但由于某种原因它失败了。但是,当我在浏览器中打开API调用链接时,它可以正常工作。此外,如果我在浏览器中打开链接后尝试使用curl获得响应,但是如果我将$ url变量更改为新链接,它将再次停止工作,直到我再次在浏览器中打开它。

这是我的代码,不要担心api密钥,它只是一个测试:

<?php 
set_time_limit(30); 
$API_KEY = "ak_wujpBbfefrmxDleyAmnqtFpqAcmey";

$url = 'https://www.google.com/'; 
$api_call = "https://www.screenshot-website.com/api/$API_KEY?url=$url&type=tablet";

$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_RETURNTRANSFER => 1,
    CURLOPT_URL => $api_call,
    CURLOPT_TIMEOUT => 30,
    CURLOPT_TIMEOUT_MS => 30000,
    CURLOPT_CONNECTTIMEOUT => 30,
    CURLOPT_CONNECTTIMEOUT_MS => 30000 )
);

$response = json_decode(curl_exec($curl), true);

if($errno = curl_errno($curl)) {
    $error_message = curl_strerror($errno);
    echo "cURL error ({$errno}):\n {$error_message}"; 
}

curl_close($curl); ?>

<img src="<?php echo $response['image']; ?>">

我完全没有错误。

1 个答案:

答案 0 :(得分:2)

我认为你的问题在于“https”,因为curl将ssl_verifier设置为true “问题是cURL尚未配置为信任服务器的HTTPS证书。”您可以阅读完整信息here.

您可以尝试设置此选项:

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);