Просмотр результатов API для разбивки на страницы - PullRequest
0 голосов
/ 16 февраля 2020

Я пытаюсь получить доступ к некоторым данным через API. Вот мой текущий код:

$ch = curl_init("https://api.example.com/rest/1.3/analytics/affiliate/vendor/?account=xxxxx&select=EARNINGS_PER_HOP");
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 60);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Page: 1', 'Accept: application/json', 'Authorization: XXXXX'));
$response = curl_exec($ch);
curl_close($ch);

if ($response) {
    $array = json_decode($response, TRUE);

    foreach ($array['rows']['row'] as $data) {
        $value = $data['data']['value']['$'];
        $dimension = $data['dimensionValue'];
        /// insert $value and $dimension into database
    }
}

Я просто пытаюсь получить некоторые данные из него и вставить их в базу данных MySQL. Мой текущий код технически работает, но API отображает только первые 100 результатов.

Если результатов более 100, он предоставит данные и даст ответ заголовка 206 Partial Content, чтобы сообщить мне, что есть больше результатов. Чтобы перейти на следующую страницу, мне нужно отправить Page: n в заголовке.

Как видно из кода выше, я отправляю Page: 1 в заголовке.

Как можно Я проверяю, указан ли код ответа 206 и, если он есть, продолжайте циклически проходить, пока он не достигнет кода ответа 200 (номер страницы в заголовке нужно будет увеличивать для каждого l oop)?

1 Ответ

1 голос
/ 16 февраля 2020

Вы можете поместить этот код в функцию, а затем вызвать ее с параметром 'n' на основе полученного кода ответа. Вы пробовали это? Вы можете получить код ответа, используя параметр curl_getinfo CURLINFO_RESPONSE_CODE или CURLINFO_HTTP_CODE.

...