Dans PHP, la fonction Curl_upkeed () est généralement utilisée pour maintenir une connexion HTTP persistante pour s'assurer que la connexion n'est pas déconnectée par le délai d'attente. Il est généralement utilisé dans les scénarios où les demandes de réseau sont fréquentes et nécessitent des connexions à long terme. Pour garantir l'effet de la fonction curl_upkeed () , vous pouvez vérifier s'il fonctionne par le biais de moyens de débogage et de données de réponse réelles. Cet article introduira en détail comment déterminer si la fonction curl_upkeep () fonctionne vraiment.
CURL_UPKEEP () est une technique pour garder les sessions HTTP actives et est souvent utilisée pour gérer les demandes de longue durée ou les scénarios de connexion à long terme. Bien que la bibliothèque Curl de PHP puisse contrôler le délai d'attente de connexion en définissant des options appropriées telles que Curlopt_timeout et Curlopt_ConnectTimeout , nous pouvons parfois avoir besoin de garder activement la connexion à être fermée d'une manière ou d'une autre, et Curl_upkeep () est particulièrement importante.
$ch = curl_init();
// Définir demandé URL
curl_setopt($ch, CURLOPT_URL, "https://m66.net/api/keepalive");
// Définissez le contenu dont vous avez besoin pour retourner
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// Définir le délai(Par exemple 30Deuxième)
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
// Faire cURL Restez connecté après avoir envoyé une demande
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
// Activer la connexion continue
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Connection: keep-alive'
));
// mettre en œuvre cURL demander
$response = curl_exec($ch);
// 检查是否成功mettre en œuvre
if(curl_errno($ch)) {
echo 'Curl error: ' . curl_error($ch);
} else {
echo "Response received: " . $response;
}
curl_close($ch);
curl_setopt ($ ch, curlopt_url, "https://m66.net/api/keepalive") : définissez l'URL demandée, où l'URL utilise le nom de domaine m66.net .
curl_setopt ($ ch, curlopt_returntransfer, true) : défini sur true pour renvoyer le contenu de réponse, plutôt que de sortir directement.
curl_setopt ($ ch, curlopt_timeout, 30) : définissez le délai de temps demandé à 30 secondes.
curl_setopt ($ ch, curlopt_follocation, true) : permet à Curl de suivre les redirections.
curl_setopt ($ ch, curlopt_httpheader, array ('Connection: keep-alive')) : définit l'en-tête de demande HTTP pour indiquer que vous souhaitez empêcher la fermeture de la connexion HTTP.
En vérifiant l'en-tête de réponse HTTP renvoyé, déterminez si la connexion continue est activée. Une fonction valide curl_upkeep () doit renvoyer une réponse contenant les en-têtes suivants:
$header = curl_getinfo($ch, CURLINFO_HEADER_OUT);
echo "Request Header: " . $header;
Si la demande contient une connexion: Keep-Alive , cela signifie que la connexion peut rester active.
La fonction curl_exec () renvoie le contenu de réponse. S'il y a un problème avec la connexion ou le délai d'expiration, vous pouvez vérifier s'il y a une erreur en cas de problème avec la connexion ou il est expiré :
if(curl_errno($ch)) {
echo 'Curl error: ' . curl_error($ch);
} else {
echo "Request was successful.";
}
Vérifiez le message d'erreur pour confirmer s'il existe un problème de connexion ou un délai d'attente. S'il n'y a pas d'erreur et que la réponse revient dans le temps, cela signifie que l'effet de curl_upkeep () est normal.
Si la connexion persistante est activée, vous pouvez afficher les informations de débogage en définissant Curlopt_verbose . En observant le temps de réponse de la demande et la durée de la connexion, confirmez si la connexion a été maintenue pendant une période plus longue:
curl_setopt($ch, CURLOPT_VERBOSE, true);
Lorsque les informations de débogage sont activées, Curl produit des informations détaillées de débogage, y compris le moment où la connexion est établie et fermée. Si la connexion est persistante, vous pouvez voir des messages comme "TCP Connection établi" et "Connection Keep-Alive".
Si le serveur prend en charge la journalisation, vous pouvez vérifier les fichiers journaux côté serveur pour voir s'il existe des enregistrements de demande continue. Si la demande de connexion du serveur n'est pas déconnectée, cela signifie que l'effet de curl_upkeep () a pris effet.
Les demandes peuvent être lancées régulièrement pour détecter la persistance de la connexion. Par exemple, demandez une API de temps en temps et vérifiez les retards en réponse ou fermeture de la connexion.