cURL调用不工作没有错误可见(WampServer 3)

时间:2016-05-21 22:35:40

标签: php curl wampserver

我使用curl和Riot API。在我的实时服务器上一切正常,但不在本地。在WampServer中启用了curl扩展,我没有收到任何错误消息,它只是一个空白页。

这是我的代码,即使它实际上并不相关。

<?php 
    $private_key = "XXX";
    function summoner_name($summoner, $server, $private_key) {
        $summoner_encoded = rawurlencode($summoner);
        $summoner_lower = strtolower($summoner_encoded);
        $curl_url = 'https://' . $server . '.api.pvp.net/api/lol/' . $server . '/v1.4/summoner/by-name/' . $summoner . '?api_key='.$private_key;
        $curl = curl_init($curl_url);
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        $result = curl_exec($curl);
        curl_close($curl);
        return $result;
    }

    function summoner_info_array_name($summoner) {
        $summoner_lower = mb_strtolower($summoner, 'UTF-8');
        $summoner_nospaces = str_replace(' ', '', $summoner_lower);
        return $summoner_nospaces;
    }

    $summoner = "Test";
    $server = "euw";
    $summoner_info = summoner_name($summoner, $server, $private_key);
    $summoner_info_array = json_decode($summoner_info, true);
    $summoner_info_array_name = summoner_info_array_name($summoner);
    $summoner_id = $summoner_info_array[$summoner_info_array_name]['id'];
    $summoner_name_display = $summoner_info_array[$summoner_info_array_name]['name'];
    $summoner_icon = $summoner_info_array[$summoner_info_array_name]['profileIconId'];
    echo '<img src="http://ddragon.leagueoflegends.com/cdn/6.9.1/img/profileicon/'.$summoner_icon.'.png" /><br/><hr>'.$summoner_name_display;
?>   

这是我的phpinfo()卷曲扩展 提前致谢! enter image description here

2 个答案:

答案 0 :(得分:2)

您可以随时拨打curl_getinfo()curl_error()函数来检查最新卷曲查询的问题。

像这样:

$result = curl_exec($curl);
if ($result === false) {
    echo "Something is wrong here!\n".var_export(curl_error($curl), true)
         . "\nQuery:".var_export(curl_getinfo($curl), true); exit();
}

答案 1 :(得分:2)

首先,正如@MaksimVolkob指出的那样,正如我们在评论中所讨论的那样,解决这些错误的第一步是查看错误消息的实际内容。 curl_error()会向您提供此信息。

具体而言,您收到了SSL / TLS错误:

SSL certificate problem: unable to get local issuer certificate' (length=63)

如果您不关心安全性(我不建议将其用于生产应用程序,),您可以禁用失败的SSL验证步骤:

curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);

更好的方法是通过设置CURLOPT_CAINFO来修复您的CA证书信息。 This blog post很好地解释了这一点。

修改:正如OP发现的那样,this question有更多关于让cURL识别正确的CA证书的细节。