@xenonhammer

Как получить обработанные данные json методом curl на php?

Поставщик дал пример кода для работы по api, я от себя добавил проверок, чтобы убедиться что все уходит
Но используя его я получаю вот такой ответ:
Код от сервера: 200

Проверка заголовка: Accept: application/json
Проверка заголовка: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:72.0) Gecko/20100101 Firefox/72.0

C:\wamp64\www\testsitework.local\samson.php:21:boolean false

Код который использовал:
<?php
// "application/json" example
$curl = curl_init("https://api.samsonopt.ru/v1/category/?api_key=*******************************************************");
$arHeaderList = array();
$arHeaderList[] = 'Accept: application/json';
$arHeaderList[] = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:72.0) Gecko/20100101 Firefox/72.0';

curl_setopt($curl, CURLOPT_HTTPHEADER, $arHeaderList);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
$result = curl_exec($curl);
	           // Ответ от сервера
 			$URL = 'https://api.samsonopt.ru/v1/category/?api_key=*******************************************************c';
			$headers = get_headers($URL);
			echo 'Код от сервера:  ' . $code = substr($headers[0], 9, 3) . "<br/>";
                  //Проверка заголовков
		        foreach($arHeaderList as $arHeaderList_info)
                       {
     			      echo '<br/>' . "Проверка заголовка:  " . $arHeaderList_info;
		        }
var_dump($result);
curl_close($curl);
	
?>

Пример ответа который я должен получить:
[
  {
    "data": [
      {
        "id": "26203",
        "name": "Тетради 12-24 листов",
        "parent_id": "26165",
        "depth_level": "3"
      }
    ],
    "meta": {
      "pagination": {
        "previous": "https://api.samsonopt.ru/v1/category/index.php?pagination_page=1&api_key=*******************************************************&response_format=xml",
        "next": "https://api.samsonopt.ru/v1/category/index.php?pagination_page=3&api_key=*******************************************************&response_format=xml"
      }
    }
  }
]

Забивая в браузере url, действительно получаю необработанный надбор данных json.
Скажите есть ли ошибки в коде?
Мне нужно получить обработанные данные чтобы их хотябы в excel добавить, для начала
  • Вопрос задан
  • 870 просмотров
Решения вопроса 1
FanatPHP
@FanatPHP
Чебуратор тега РНР
Осваиваем программирование.

1. Получив на выходе слово false мы должны посмотреть своем коде место, из которого это слово получается.
Смотрим: $result = curl_exec($curl);. Получается что false вернула функция curl_exec().
2. чтобы узнать, в каких случаях функция curl_exec() возвращает false, надо открыть документацию
3. Открываем документацию и читаем, Возвращает FALSE в случае возникновения ошибки.
4. Ну тут дальше уже сложнее. Тут нужен или опыт или немного погуглить, чтобы открыть для себя функцию curl_error()
5. Добавить вывод результата этой функции в свой скрипт, и дальше смотреть что она выведет и действовать по обстоятельствам.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы