Usando o curl para fazer uma solicitação HEAD com um tempo limite difícil

5

Gostaria de usar curl para enviar uma solicitação HTTP HEAD a uma URL para verificar se ela está funcionando corretamente (o servidor está ativo e envia uma resposta bem-sucedida). No final, preciso do código de resposta HTTP final retornado e da URL (após seguir os redirecionamentos). Por fim, preciso definir um tempo limite rígido (um período de tempo após o qual a chamada falhará, independentemente de onde a solicitação curl seja).

O curl suporta tudo isto? Quais opções eu preciso usar para conseguir isso?

    
por jrdioko 12.12.2011 / 19:09

1 resposta

12

curl -I gerará uma solicitação HEAD.

Adicionar a opção -L fará com que siga redirecionamentos.

Os tempos limite podem ser controlados com várias opções, dependendo de qual bit da solicitação você deseja expirar.

Na página de manual :

--connect-timeout <seconds>
          Maximum time in seconds that you allow the connection to the server to take.  This only limits the connection phase, once curl has connected this option is of no more use. See also the -m/--max-time 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 hanging for hours due to slow networks or links going down.  See also the --connect-timeout option.

Outro par de opções relacionadas ao tempo limite também vale a pena olhar são:

--retry
--retry-delay
--retry-max-time
    
por 12.12.2011 / 19:15