Hi,
I’m trying to work pagination for list users. But in response header I get Link parameter is empty,
link: ; rel=“self”
link: ; rel=“next”
If I ran the same through Postman, it gives me the correct link.
Below is my code,
$sUrl = 'https://{subdomain}.oktapreview.com/api/v1/users?filter=status%20eq%20%22ACTIVE%22&limit=5';
$request_headers = array();
$request_headers[] = 'Accept: application/json';
$request_headers[] = 'Content-Type: application/json';
$request_headers[] = 'Authorization: SSWS {APIKEY}';
$ch = curl_init($sUrl);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, $request_headers);
$response = curl_exec($ch);
$header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
$header = substr($response, 0, $header_size);
$body = substr($response, $header_size);
echo '<pre>';
print_r($header);
echo '</pre>';
echo '<pre>';
print_r(json_decode($body));
echo '</pre>';
Let me know if I’m missing anything.
Thanks!
dragos
June 25, 2019, 1:32pm
2
Hi @amits.contentserv
I have tested this script on my end and I did not find any issues, the next page was returned successfully in the body. Please check also page source as the browser might render the next page as a tag and, as such, not display it.
Alternatively, you can use something like the following to get the next page
$sUrl = 'https://dragos.okta.com/api/v1/users?filter=status%20eq%20%22ACTIVE%22&limit=5';
$request_headers = array();
$request_headers[] = 'Accept: application/json';
$request_headers[] = 'Content-Type: application/json';
$request_headers[] = 'Authorization: SSWS <REDACTED>';
$ch = curl_init($sUrl);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, $request_headers);
$response = curl_exec($ch);
$header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
$header = substr($response, 0, $header_size);
if(preg_match('/Link: <(.*)>; rel=\"next/', $header, $matches))
{
echo "Next page URL is: " . $matches[1];
}
1 Like
Hi @dragos ,
You were correct, it is rendering as a tag.
Appreciate your help.
system
Closed
January 17, 2024, 11:43pm
5
This topic was automatically closed 24 hours after the last reply. New replies are no longer allowed.