Position actuelle: Accueil> Derniers articles> curl_close comment obtenir le code d'état HTTP demandé après la fermeture de la session?

curl_close comment obtenir le code d'état HTTP demandé après la fermeture de la session?

gitbox 2025-05-20

Lorsque vous utilisez PHP pour les demandes HTTP, Curl est un outil très courant qui aide les développeurs à envoyer des demandes et à obtenir des réponses. Lorsque vous utilisez Curl pour envoyer une demande et traiter une réponse, vous pouvez rencontrer un problème - comment pouvez-vous obtenir le code d'état HTTP demandé après avoir appelé curl_close () pour fermer la session Curl?

Dans PHP, Curl_close () est utilisé pour fermer une session Curl, ce qui signifie que la fonction libère toutes les ressources liées à la session en cours. Habituellement, après avoir appelé curl_close () , toutes les informations de session seront détruites, de sorte que le code d'état HTTP demandé ne peut pas être directement récupéré. Cependant, nous avons encore des moyens d'obtenir le code d'état avant ou après la fermeture de la session.

1. Obtenez le code d'état HTTP via Curl_getInfo ()

Après avoir exécuté la demande, vous pouvez utiliser la fonction curl_getInfo () pour obtenir des informations de demande, y compris le code d'état HTTP. Cette fonction peut renvoyer un tableau contenant plusieurs informations de demande, dont Http_code , qui représente le code d'état HTTP.

Avant de fermer la session Curl, nous pouvons appeler Curl_getInfo () pour obtenir le code d'état. Voici un exemple:

 <?php
// initialisation cURL Session
$ch = curl_init();

// Définir demandé URL
curl_setopt($ch, CURLOPT_URL, "https://gitbox.net/api/example");

// installation cURL Options
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

// mettre en œuvre cURL demander
$response = curl_exec($ch);

// Obtenir HTTP Code d&#39;état
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);

// fermeture cURL Session
curl_close($ch);

// Sortir HTTP Code d&#39;état
echo "HTTP Code d&#39;état是: " . $http_code;
?>

Dans cet exemple, nous initialisons d'abord une session CURL à l'aide de curl_init () , puis de définir l'URL de demande et d'exécuter la demande. Ensuite, le code d'état HTTP est obtenu à l'aide de Curl_getInfo () et le code d'état est stocké dans la variable $ http_code . Après la fin de la session, nous appelons Curl_close () pour fermer la session Curl.

2. Pourquoi ne pouvons-nous pas obtenir le code d'état HTTP après curl_close () ?

curl_close () ferme la session Curl actuelle et libère ses ressources occupées. Une fois que Curl_close () est appelé, toutes les informations d'état liées à la session seront détruites, de sorte que les informations détaillées demandées, y compris le code d'état HTTP, ne peuvent pas être obtenues via la fonction Curl.

Pour cette raison, l'heure correcte pour obtenir le code d'état HTTP est de terminer l'exécution Curl_exec () et d'appeler Curl_getInfo () avant Curl_close () . Cela garantit que les informations sur l'état demandé sont récupérées avant de clôturer la session.

3. Obtenez d'autres informations via Curl_getInfo ()

En plus du code d'état HTTP, Curl_getInfo () peut renvoyer de nombreuses autres informations utiles. Par exemple, retournez des informations telles que l'URL finale de la demande, l'heure qu'il a pris, la durée du contenu, etc. Voici un exemple de la façon d'obtenir plus d'informations sur la demande:

 <?php
// initialisation cURL Session
$ch = curl_init();

// Définir demandé URL
curl_setopt($ch, CURLOPT_URL, "https://gitbox.net/api/example");

// installation cURL Options
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

// mettre en œuvre cURL demander
$response = curl_exec($ch);

// Obtenir cURL demander信息
$request_info = curl_getinfo($ch);

// fermeture cURL Session
curl_close($ch);

// Sortirdemander信息
echo "HTTP Code d&#39;état: " . $request_info['http_code'] . "\n";
echo "demander的 URL: " . $request_info['url'] . "\n";
echo "demander耗时: " . $request_info['total_time'] . "Deuxième\n";
?>

Grâce au code ci-dessus, vous pouvez obtenir des informations telles que le code d'état HTTP, l'URL de demande finale et le temps de demande total.

4. Résumé

Bien que Curl_close () ferme la session et libère des ressources, nous pouvons toujours obtenir le code d'état HTTP et d'autres informations de demande utiles via Curl_getInfo () avant de fermer la session. Par conséquent, assurez-vous d'appeler Curl_getInfo () avant d'appeler Curl_close () afin que le code d'état HTTP puisse être obtenu avec succès.

J'espère que grâce à cet article, vous pouvez mieux comprendre comment utiliser Curl pour obtenir des codes d'état HTTP dans PHP et éviter le problème de ne pas pouvoir obtenir d'informations après la fermeture de la session.