Fazer uma requisição HEAD (http.head)
Declaração
código_HTTP, texto_JSON_dos_cabeçalhos = http.head(URL [, segundos_de_timeout, cabeçalhos, URL_NÃO_ESCAPADA ])
Declaração (parâmetros nomeados)
Aceito a partir de 20250625; parâmetros de progresso aceitos a partir de 20260402.
code_HTTP, texto_JSON_dos_cabeçalhos = http.head{
url = URL;
timeout = segundos_de_timeout;
headers = cabeçalhos;
params = parâmetros_de_Query;
progress = função_de_callback_de_progresso;
progress_interval_ms = intervalo_do_callback_em_milissegundos;
}
Parâmetros
- URL
Texto; endereço URL a requisitar. Por padrão, este método aplica escape à URL; consulte URL NÃO ESCAPADA se isso não for desejado. - segundos de timeout
Número real opcional; tempo limite da requisição, em segundos. O padrão é 10. - cabeçalhos
Tabela opcional; cabeçalhos enviados, no formato\{field1 = value1, field2 = value2, ...\}; o padrão é\{\}. - parâmetros de Query
Tabela opcional; parâmetros de Query enviados, no formato\{field1 = value1, field2 = value2, ...\}; o padrão é\{\}. - função de callback de progresso
Função opcional, aceita a partir de 20260402. É chamada quando o progresso da requisição muda; seu primeiro argumento contém as informações de progresso atuais. - intervalo do callback em milissegundos
Inteiro opcional, aceito a partir de 20260402. Controla o intervalo de disparo do callback de progresso, em milissegundos. - URL NÃO ESCAPADA
Booleano opcional; true envia a URL diretamente, sem escape, e o padrão é false.
Para aplicar escape personalizado, consulte o módulo lcurl, easy:escape e easy:unescape.
Valores retornados
- código de status HTTP
Inteiro; código de status http da requisição atual. Retorna -1 em caso de timeout. - texto JSON dos cabeçalhos retornados
Texto ou nil; cabeçalhos em JSON retornados ao concluir a requisição. Retorna nil em caso de timeout.
Descrição
Usa o método HEAD do protocolo HTTP/1.1 para obter os cabeçalhos de um recurso de rede.
O protocolo HEAD normalmente retorna os mesmos cabeçalhos que uma requisição GET, mas não retorna o conteúdo do corpo real.
Esta função pode ceder a execução; antes de retornar, outras threads podem ter a oportunidade de executar.
O callback de progresso recebe uma estrutura info como a seguinte:
{
count_of_bytes_sent = bytes_enviados;
count_of_bytes_expected_to_send = bytes_a_enviar_estimados;
count_of_bytes_received = bytes_recebidos;
count_of_bytes_expected_to_receive = bytes_a_receber_estimados;
}
Exemplo
local c, h = http.head("https://www.xxtouch.app/测试文本.txt")
if c==200 then -- se o código de status retornado for HTTP_OK
sys.alert(h) -- exibe os cabeçalhos recebidos
end
Observação: o código acima usa a função sys.alert, que não pertence a este capítulo.