通过循环的PHP API cURL,获取并写入文件中的所有分页数据
P粉652523980
P粉652523980 2023-09-01 10:42:29
0
1
605
<p>作为一个对于进行API请求和适当编码有些新手,我希望能够得到帮助,编写适当的循环代码,将光标移动到下一页并返回所有数据,直到没有更多的页面为止。我的初始代码可以获取50个结果的第一页,并且没有循环语句。我只需要帮助编写适当的循环。</p> <p>初始代码如下。它可以很好地获取结果的第一页。我将结果输出到屏幕上,只是为了测试看看输出的内容。代码中没有任何错误处理。</p> <p><strong>我需要在代码中添加循环,直到hasMore为false,然后将数据写入/追加到我的文件中。</strong></p> <p>API文档指示我可以通过以下方式移动光标并获取下一页。 此端点通过光标进行分页。pageInfo属性将包含有关是否有更多结果的信息:{"cursor": "Mg", "hasMore": true}。如果hasMore为true,则可以将光标作为查询字符串的一部分传递到下一个API请求中,以获取下一页的结果,例如?cursor=Mg。</p> <pre class="brush:php;toolbar:false;"><?php $url = "myURL/incoming/v2/content"; $curl = curl_init($url); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); $headers = array( "Accept: application/json", "Authorization: Bearer key", ); curl_setopt($curl, CURLOPT_HTTPHEADER, $headers); //for debug only! curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); $resp = curl_exec($curl); curl_close($curl); var_dump($resp); file_put_contents('CURL-CONTENT.txt', $resp); ?></pre></p>
P粉652523980
P粉652523980

全部回复(1)
P粉275883973

您遗漏了一些细节。我可以给您一些概括性的帮助。
这可能足以让您走上正轨。

file_put_contents('CURL-CONTENT.txt',''); // 创建文件并清空其内容(如果文件存在)
$url = "myURL/incoming/v2/content/";
while(true){
  $curl = curl_init($url);
  curl_setopt($curl, CURLOPT_URL, $url);
  curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
  
  $headers = array(
     "Accept: application/json",
     "Authorization: Bearer key",
  );
  curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
  // 仅用于调试!
  curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
  curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
  
  $resp = curl_exec($curl);
  curl_close($curl);
  var_dump($resp);
  file_put_contents('CURL-CONTENT.txt', $resp,FILE_APPEND); // 追加到文件中
 // 获取hasMore的值。
  if(!hasMore){break;}
 // 此时必须还有更多内容,因此准备下一个URL
  $url = "myURL/incoming/v2/content/?Cursor=Mg";
}
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板