PHP 中的 curl 在本地能够获取数据,为什么在服务器上获取失败返回 false?

由于公司需求,用 php 的 curl 获取数据,但是有个 api 的数据在本地测试的时候能够获取,而在服务器上使用则出现获取失败,返回 false 的情况。


    $date = time();
    for($i = 0 ; $i < 10 ; $i++){
        $ch = curl_init ();
        curl_setopt ( $ch, CURLOPT_URL, 'http://api.aex.com/ticker.php?c=all&mk_type=btc' );
        curl_setopt ( $ch, CURLOPT_POST, 1 );
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_HEADER, 1);
        curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; AEX PHP bot; ' . php_uname('a') . '; PHP/' . phpversion() . ')');
        $result = curl_exec($ch);
        var_dump($result);
        
    }
    var_dump(time() - $date);

而在服务器上运行该脚本的时候,返回也是 false ,但是会弹出下载栏,下载后可以查看数据。

阅读 4.8k
1 个回答

首先按照你说法是确实有返回值,只是返回值是false,这样的话就可以分为两种情况。
一种是对方的api报错了,你可以去他的官方论坛或者一些大的论坛看一下,如果有使用的人一定会有人吐槽
另一种就是你的请求被对方拒绝了,这时候就应该看一下你的请求数据,如果你本地成功而服务器上失败,那是不是有IP限制呢?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题