Obtenez et écrivez toutes les données paginées dans un fichier via l'API PHP cURL en boucle
P粉652523980
P粉652523980 2023-09-01 10:42:29
0
1
643
<p>En tant que débutant dans la création de requêtes API et le codage approprié, j'aimerais avoir de l'aide pour écrire le code approprié à boucler, déplacer le curseur vers la page suivante et renvoyer toutes les données jusqu'à ce qu'il n'y ait plus de pages. Mon code initial obtient la première page de 50 résultats sans boucle. J'ai juste besoin d'aide pour écrire une boucle appropriée. </p> <p>Le code initial est le suivant. Cela fonctionne bien pour obtenir la première page de résultats. J'affiche les résultats à l'écran juste pour tester pour voir quel est le résultat. Il n'y a aucune gestion des erreurs dans le code. </p> <p><strong>Je dois ajouter une boucle dans mon code jusqu'à ce que hasMore soit faux, puis écrire/ajouter les données à mon fichier. </strong></p> <p>La documentation de l'API indique que je peux déplacer le curseur et obtenir la page suivante de la manière suivante. Ce point de terminaison effectue la pagination via le curseur. L'attribut pageInfo contiendra des informations indiquant s'il y a plus de résultats : {"cursor": "Mg", "hasMore": true}. Si hasMore est vrai, le curseur peut être transmis à la requête API suivante dans le cadre de la chaîne de requête pour obtenir la page de résultats suivante, par exemple ?cursor=Mg. </p> <pre class="brush:php;toolbar:false;"><?php $url = "monURL/incoming/v2/content" ; $curl = curl_init($url); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); $en-têtes = tableau( "Accepter : application/json", "Autorisation : Clé au porteur", ); curl_setopt($curl, CURLOPT_HTTPHEADER, $headers); //pour le débogage uniquement ! 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

répondre à tous(1)
P粉275883973

Il vous manque certains détails. Je peux vous apporter une aide générale.
Cela pourrait suffire à vous mettre sur la bonne voie.

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";
}
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal