Maison > développement back-end > tutoriel php > Comment puis-je maintenir une session Curl active pour éviter les erreurs 401 non autorisées lors de l'accès aux API ?

Comment puis-je maintenir une session Curl active pour éviter les erreurs 401 non autorisées lors de l'accès aux API ?

Linda Hamilton
Libérer: 2024-12-02 09:46:10
original
804 Les gens l'ont consulté

How Can I Keep a Curl Session Alive to Avoid 401 Unauthorized Errors When Accessing APIs?

Maintenir une session active avec Curl et PHP

Pour vous connecter à une API, authentifier un utilisateur et afficher les détails de l'utilisateur, vous devez d'abord vous connecter et obtenir un cookie de session . Cependant, lorsque vous utilisez Curl, vous pouvez rencontrer une erreur 401 non autorisée lorsque vous essayez d'accéder aux détails de l'utilisateur. Cela se produit car Curl doit conserver le cookie de session pour permettre la communication entre les différents points de terminaison.

Le code fourni se boucle vers le point de terminaison de connexion et enregistre le pot de cookies. Cependant, pour envoyer des cookies enregistrés lors de demandes ultérieures, vous devez également définir CURLOPT_COOKIEFILE sur le même pot de cookies. Cela fournira à Curl les informations nécessaires pour maintenir la session et récupérer avec succès les détails de l'utilisateur.

Le code corrigé est le suivant :

define("COOKIE_FILE", "cookie.txt");

// Login the user
$ch = curl_init('http://api.example.com/login/joe/smith');
curl_setopt ($ch, CURLOPT_COOKIEJAR, COOKIE_FILE); 
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, true);
echo curl_exec ($ch);

// Read the session saved in the cookie file
echo "<br /><br />";
$file = fopen("cookie.txt", 'r');
echo fread($file, 100000000);   
echo "<br /><br />";

// Get the users details
$ch = curl_init('http://api.example.com/user');
curl_setopt ($ch, CURLOPT_COOKIEJAR, COOKIE_FILE); 
**curl_setopt ($ch, CURLOPT_COOKIEFILE, COOKIE_FILE);** // **Set the cookie file** 
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, true);
echo curl_exec ($ch);
Copier après la connexion

En ajoutant CURLOPT_COOKIEFILE, Curl maintiendra désormais la session cookie et accéder avec succès aux détails de l'utilisateur.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal