За последние 24 часа нас посетили 22465 программистов и 1031 робот. Сейчас ищут 626 программистов ...

Почему при обращении к определенному api с помощью curl возвращается null?

Тема в разделе "Прочие вопросы по PHP", создана пользователем ProStoNub, 4 сен 2021.

Метки:
  1. ProStoNub

    ProStoNub Новичок

    С нами с:
    4 сен 2021
    Сообщения:
    8
    Симпатии:
    0
    Добрый день. Никак понять не могу, обращаюсь к api, в network response есть данные json, но на выходе почему то ничего не дает.

    PHP:
    1. $header = [
    2.     'accept: */*',
    3.     'accept-language: ru,en;q=0.9,cy;q=0.8',
    4.     'cache-control: max-age=0',
    5.     'if-none-match: W/"e0ba7c0959"',
    6.     'origin: https://www.sofascore.com',
    7.     'sec-ch-ua: "Chromium";v="92", " Not A;Brand";v="99", "Yandex";v="21"',
    8.     'sec-ch-ua-mobile: ?1',
    9.     'sec-fetch-dest: empty',
    10.     'sec-fetch-mode: cors',
    11.     'sec-fetch-site: same-site'
    12. ];
    13.  
    14. $referer = 'https://www.sofascore.com/';
    15. $userAgent = 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Mobile Safari/537.36';
    16.  
    17. $curl = CurlParse::app()
    18.     ->set(CURLOPT_HTTPHEADER, $header)
    19.     ->set(CURLOPT_REFERER, $referer)
    20.     ->set(CURLOPT_USERAGENT, $userAgent);
    21. $res = $curl->request("https://api.sofascore.com/api/v1/rankings/type/6");
    22.  
    23. echo '<pre>';
    24. echo $res;
    25. echo '</pre>';
    26.  
    27. switch (json_last_error()) {
    28.     case JSON_ERROR_NONE:
    29.         echo ' - Ошибок нет';
    30.         break;
    31.     case JSON_ERROR_DEPTH:
    32.         echo ' - Достигнута максимальная глубина стека';
    33.         break;
    34.     case JSON_ERROR_STATE_MISMATCH:
    35.         echo ' - Некорректные разряды или несоответствие режимов';
    36.         break;
    37.     case JSON_ERROR_CTRL_CHAR:
    38.         echo ' - Некорректный управляющий символ';
    39.         break;
    40.     case JSON_ERROR_SYNTAX:
    41.         echo ' - Синтаксическая ошибка, некорректный JSON';
    42.         break;
    43.     case JSON_ERROR_UTF8:
    44.         echo ' - Некорректные символы UTF-8, возможно неверно закодирован';
    45.         break;
    46.     default:
    47.         echo ' - Неизвестная ошибка';
    48.         break;
    49. }
    50.  
    51. echo PHP_EOL;


    когда делаю
    PHP:
    1. $res1 = json_decode($res, 1);

    То получаю ошибку
    Код (Text):
    1. JSON_ERROR_SYNTAX
    Но если обращаюсь к другому адресу,
    Код (Text):
    1. https://api.sofascore.com/api/v1/rankings/type/6
    то все нормально отдается. Первая ссылка рейтинг wta вторая, которая работает, atp.

    Не понимаю почему так, помогите пожалуйста