2017-02-13 9 views
0

Я настроил вызов API на IGDB.com, а на локальном все работает отлично, проблем нет. Когда он живет, хотя он выполняет множество разных вещей, не возвращает никакого тела в массив и бросает его в ['headers'] или просто запрашивает ключ, когда я его уже установил.Unirest делает разные вещи на локальном и живое при доступе к API

$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, поэтому отладка довольно сложная для меня.

Спасибо!

ОБНОВЛЕНИЕ: Это действительно меня озадачило. Кажется, что в реальном времени возвращенное тело добавляется в массив заголовков. Что не должно происходить. Есть идеи?

+0

Он сказал вам точно, что не так .... Вам не хватает «X-Mashape-Key». Я предполагаю, что это потенциально может быть привязано к адресу? то есть '127.0.0.1' – Darren

+0

Как я узнаю, привязан ли он к адресу? – Kyon147

ответ

0

Итак, после много отладки это была проблема безопасности PHP opendir на самом сервере.

Если у кого-то такая же проблема или аналогичная проверка, проверьте свои настройки opendir в файле php.ini. Для меня это блокировало сценарий, поэтому снижение герметичности там, где скрипты могли работать, теперь отлично работает.