duandu1049
2016-05-21 22:35
浏览 58
已采纳

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

I use curl with the Riot API. Everything is working fine on my live server but isn't in local. The curl extension is enabled in WampServer and I don't get any error messages, it's just a blank page.

Here's my code even if it's not actually relevant.

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

And here's my phpinfo() for curl extension.
Thanks in advance! enter image description here.

图片转代码服务由CSDN问答提供 功能建议

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

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

 &lt;?php 
 $ private_key =“XXX”; 
函数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/'。  $召唤者。  '?api_key ='。$ private_key; 
 $ curl = curl_init($ curl_url); 
 curl_setopt($ curl,CURLOPT_RETURNTRANSFER,1); 
 $ result = curl_exec($ curl); 
 curl_close($ curl)  ; 
返回$ result; 
} 
 
函数summoner_info_array_name($ summoner){
 $ summoner_lower = mb_strtolower($ summoner,'UTF-8'); 
 $ summoner_nospaces = str_replace('',''  ,$ summoner_lower); 
返回$ 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'&lt; img src =“http://ddragon.leagueoflege  nds.com/cdn/6.9.1/img/profileicon/'.$summoner_icon.'.png“/><br/><hr>'.$summoner_name_display;
?>  
   
 
 

这是我的 phpinfo() for curl extension。
提前谢谢!

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • douyalin0847 2016-05-21 22:57
    已采纳

    So, first, as @MaksimVolkob pointed out, and as we discussed in the comments, the first step to resolving these errors is to see what the error message actually is. curl_error() will give you this information.

    Specifically, you're getting an SSL/TLS error:

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

    If you don't care about security (I do not recommend this for production applications, ever.), you can disable the SSL verification step that is failing:

    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
    

    The better way is to fix your CA certificate information by setting CURLOPT_CAINFO. This blog post explains this pretty well.

    Edit: As OP discovered, this question has more specifics about getting cURL to recognize the proper CA certificate.

    已采纳该答案
    打赏 评论
  • douyou7878 2016-05-21 22:46

    You can always call curl_getinfo() and curl_error() functions to check the problems on latest curl query.

    Like this:

    $result = curl_exec($curl);
    if ($result === false) {
        echo "Something is wrong here!
    ".var_export(curl_error($curl), true)
             . "
    Query:".var_export(curl_getinfo($curl), true); exit();
    }
    
    打赏 评论

相关推荐 更多相似问题