访问 API 时,Unirest 在本地和直播中做不同的事情

Unirest doing different things on local and live when accessing API

我已经设置了对 IGDB.com 的 API 调用,在本地一切正常,没有任何问题。虽然在直播时它正在做很多不同的事情,但不返回数组中的任何 body 并将其扔到 ['headers'] 中,或者只是在我已经设置它时询问密钥。

$headers = array(
    'Accept' => 'application/json',
    "X-Mashape-Key" => "KEY IS NORMALLY HERE"
);
$query = array(
    'fields' => 'name',
    'limit' => 10,
);

//$body = Unirest\Request\Body::form($query);

$response = Unirest\Request::get('https://igdbcom-internet-game-database-v1.p.mashape.com/games/?', $headers, $query);

当我 var_dump 响应时使用完全相同的代码执行此操作。

本地

object(Unirest\Response)#975 (4) { ["code"]=> int(200) ["raw_body"]=> string(121) "[{"id":2411},{"id":2410},{"id":2409},{"id":2408},{"id":1213},{"id":1211},{"id":1210},{"id":1208},{"id":1207},{"id":1206}]" ["body"]=> array(10) { [0]=> object(stdClass)#979 (1) { ["id"]=> int(2411) } [1]=> object(stdClass)#1003 (1) { ["id"]=> int(2410) } [2]=> object(stdClass)#981 (1) { ["id"]=> int(2409) } [3]=> object(stdClass)#976 (1) { ["id"]=> int(2408) } [4]=> object(stdClass)#977 (1) { ["id"]=> int(1213) } [5]=> object(stdClass)#978 (1) { ["id"]=> int(1211) } [6]=> object(stdClass)#996 (1) { ["id"]=> int(1210) } [7]=> object(stdClass)#997 (1) { ["id"]=> int(1208) } [8]=> object(stdClass)#999 (1) { ["id"]=> int(1207) } [9]=> object(stdClass)#1000 (1) { ["id"]=> int(1206) } } ["headers"]=> array(8) { [0]=> string(15) "HTTP/1.1 200 OK" ["Content-Type"]=> string(9) "text/json" ["Date"]=> string(29) "Mon, 13 Feb 2017 22:50:58 GMT" ["Server"]=> string(13) "Mashape/5.0.6" ["X-RateLimit-requests-Limit"]=> string(4) "7000" ["X-RateLimit-requests-Remaining"]=> string(4) "6755" ["Content-Length"]=> string(3) "121" ["Connection"]=> string(10) "keep-alive" } }

直播中

object(Unirest\Response)#1 (4) { ["code"]=> int(401) ["raw_body"]=> bool(false) ["body"]=> NULL ["headers"]=> array(1) { ["{"message""]=> string(123) ""Missing Mashape application key. Go to http:\/\/docs.mashape.com\/api-keys to learn how to get your API application key."}" } }

我似乎无法弄清楚为什么它在本地效果很好,但在现场却完全不同。

我是 Unirest 的新手,所以调试它对我来说非常困难。

谢谢!

更新: 这真的让我很困惑。似乎在现场,返回的 body 被添加到 headers 数组。这不应该发生。有什么想法吗?

所以经过大量调试,其实是PHP服务器本身的opendir安全问题

如果有人遇到相同或类似的问题,请检查 php.ini 文件中的 opendir 设置。对我来说,它阻止了脚本,因此减少了脚本可能 运行 的紧密度,现在它完美地工作了。