循环遍历 API 个分页结果
Looping through API results for pagination
我正在尝试通过 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 个,它将提供数据并给出 header 响应 206 Partial Content
让我知道还有更多结果。要获取下一页,我必须在 header.
中发送 Page: n
从上面的代码可以看出,我在 header.
中发送 Page: 1
我如何检查是否给出了 206
响应代码,如果是,继续循环直到它到达 200
响应代码([=30 中的页码=] 每次循环都需要增加)?
您可以将该代码放入一个函数中,然后根据您获得的响应代码以 'n' 作为参数调用该函数。你试过了吗?您可以使用 curl_getinfo 选项 CURLINFO_RESPONSE_CODE 或 CURLINFO_HTTP_CODE.
获取响应代码
我正在尝试通过 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 个,它将提供数据并给出 header 响应 206 Partial Content
让我知道还有更多结果。要获取下一页,我必须在 header.
Page: n
从上面的代码可以看出,我在 header.
中发送Page: 1
我如何检查是否给出了 206
响应代码,如果是,继续循环直到它到达 200
响应代码([=30 中的页码=] 每次循环都需要增加)?
您可以将该代码放入一个函数中,然后根据您获得的响应代码以 'n' 作为参数调用该函数。你试过了吗?您可以使用 curl_getinfo 选项 CURLINFO_RESPONSE_CODE 或 CURLINFO_HTTP_CODE.
获取响应代码