Maison  >  Article  >  développement back-end  >  Comment gérer le délai d'expiration de l'interface PHP

Comment gérer le délai d'expiration de l'interface PHP

(*-*)浩
(*-*)浩original
2019-09-25 11:15:363643parcourir

Généralement, nous accédons à HTTP de plusieurs manières, principalement : curl, socket, file_get_contents() et d'autres méthodes.

Si le serveur de l'autre partie ne répond jamais, nous serons dans une tragédie. Il est facile de tuer tout le serveur, nous devons donc également prendre en compte le problème du délai d'attente lors de l'accès à http.

Comment gérer le délai d'expiration de l'interface PHP

[CURL access HTTP]

CURL est une bibliothèque lib couramment utilisée que nous utilisons couramment pour accéder à l'interface du protocole HTTP. , hautes performances et certaines fonctions de prise en charge de la concurrence. (Apprentissage recommandé : Programmation PHP de l'entrée à la maîtrise)

Utilisons l'extension cURL pour gérer le contrôle des délais d'attente

Si vous souhaitez un traitement plus précis Pour le délai d'attente, utilisez l'extension cURL, qui peut définir le délai d'expiration de connexion et le délai d'expiration de lecture (CURLOPT_TIMEOUTCURLOPT_CONNECTTIMEOUT).

Si vous souhaitez contrôler que l'interface HTTP doit renvoyer au niveau de la milliseconde, vous pouvez également utiliser les constantes CURLOPT_TIMEOUT_MS et CURLOPT_CONNECTTIMEOUT_M.

Notez que si vous utilisez ces deux constantes, vous devez définir curl_setopt($ch, CURLOPT_NOSIGNAL, 1);

La magie est là, le cURL le mécanisme d'extension est très En particulier, autant de données obtenues à l'heure de lecture spécifiée sont renvoyées, puis l'appel est terminé et le programme ne signale pas d'erreur

Regardez-le à travers le code :

function e_curl() {
    global $url;
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_NOSIGNAL, 1);
    curl_setopt($ch, CURLOPT_TIMEOUT, 3);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 1);
    $response = curl_exec($ch);
    if ($response === false) {
        $info = curl_getinfo($ch);
        if ($info['http_code'] === 0) {
        return false;
        }
    }
    return true;}e_curl();

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!

Déclaration:
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
Article précédent:qu'est-ce que l'interface phpArticle suivant:qu'est-ce que l'interface php