web-dev-qa-db-fra.com

Définir le délai d'expiration de la réponse de la page Web avec curl

J'utilise un outil pour contrôler si la page Web est opérationnelle.

L'outil utilise la commande curl en interne pour récupérer la sortie.

Cependant, lorsqu'une page Web met plus de temps à répondre, elle renvoie une erreur TIMEOUT. Il n'y a aucun moyen d'augmenter le délai d'expiration de l'outil.

Existe-t-il un moyen de définir/modifier le délai d'expiration d'une réponse à partir d'une page Web?

Y a-t-il une variable qui peut être modifiée?

16
user80040

Vous pouvez utiliser -m option:

-m, --max-time <seconds>
              Maximum time in seconds that you allow the  whole  operation  to
              take.   This is useful for preventing your batch jobs from hang‐
              ing for hours due to slow networks or  links  going  down.   See
              also the --connect-timeout option.

              If this option is used several times, the last one will be used.

Cela inclut le temps de se connecter, si vous souhaitez le spécifier séparément, utilisez --connect-timeout option.

26
cuonglm

curl a une option "timeout de connexion":

--connect-timeout <seconds>

Si votre "outil" est un script, vous pouvez le modifier manuellement à cet endroit. Mais https://unix.stackexchange.com/a/148926/77959 est encore mieux - éditez la configuration de boucle!

4
flowtron

Normalement, vous le feriez avec une option sur la ligne de commande lorsque curl est invoqué. Mais comme vous ne pouvez pas changer cela, il existe une autre façon - vous pouvez créer un fichier de configuration pour curl. Sous unix, curl recherchera d'abord dans le répertoire personnel de l'utilisateur qui exécute curl un fichier appelé .curlrc. Créez ce fichier avec la ligne

connect-timeout = 10

pour réduire le délai à 10 secondes. Ou vous pouvez définir une durée maximale pour toute l'opération, avec l'option max-time:

max-time = 10
4
Jenny D

Depuis Curl, vous pouvez utiliser cette option --connect-timeout: Durée maximale en secondes pendant laquelle vous autorisez la connexion au serveur. Cela ne limite que la phase de connexion, une fois que curl a connecté cette option n'est plus utile. Voir aussi le --max-time option.

0
Thushi