File lib/http.lua
NCLua HTTP v0.9.9: Módulo para envio e recebimento de requisições HTTP em aplicações NCLua para TV Digital, possibilitando também, o download de arquivos por meio de tal protocolo.
Utiliza a classe tcp disponibilizada no Tutorial de NCLua e o módulo de conversão de/para base64 disponível em Lua Users
Author:
| Manoel Campos da Silva Filho Professor do Instituto Federal de Educação, Ciência e Tecnologia do Tocantins Mestrando em Engenharia Elétrica na Universidade de Brasília, na área de TV Digital http://manoelcampos.com |
Functions
| getFile (url, callback, fileName, userAgent, user, password, port) | Envia uma requisição HTTP para uma URL que represente um arquivo, e então faz o download do mesmo. |
| getHeaderAndContent (response) | Separa o header do body de uma resposta a uma requisição HTTP |
| getHttpHeader (header, fieldName) | Obtém o valor de um determinado campo de uma resposta HTTP |
| request (url, callback, method, params, userAgent, headers, user, password, port) | Envia uma requisição HTTP para um determinado servidor |
| splitUrl (url) | Obtém uma URL e divide a mesma em protocolo, host, porta e path |
Functions
- getFile (url, callback, fileName, userAgent, user, password, port)
-
Envia uma requisição HTTP para uma URL que represente um arquivo, e então faz o download do mesmo.
Parameters
- url: URL para a página que deseja-se acessar. A mesma pode incluir um número de porta, não necessitando usar o parâmetro port.
- callback: Função de callback a ser executada quando a resposta da requisição for obtida. A mesma deve possuir em sua assinatura, um parâmetro header e um body, que conterão, respectivamente, os headers retornados e o corpo da resposta (os dois como strings).
- fileName: Caminho completo para salvar o arquivo localmente. Só deve ser usado para depuração, pois passando-se um nome de arquivo, fará com que a função use o módulo io, não disponível no Ginga. Para uso em ambientes reais (Set-top boxes), deve-se passar nil para o parâmetro
- userAgent: Nome/versão do cliente http. Opcional
- user: Usuário para autenticação básica. Opcional
- password: Senha para autenticação básição. Opcional
- port: Porta a ser utilizada para a conexão. O padrão é 80, no caso do valor ser omitido. A porta também pode ser especificada diretamente na URL. Se for indicada uma porta lá e aqui no parâmetro port, a porta da url é que será utilizada e a do parâmetro port será ignorada.
Return value:
Se o parâmetro fileName for diferente de nil, retorna true em caso de sucesso, e false em caso de erro. Caso contrário, retorna o conteúdo do arquivo, caso o mesmo seja obtido, caso contrário, retorna false. - getHeaderAndContent (response)
-
Separa o header do body de uma resposta a uma requisição HTTP
Parameters
- response: String contendo a resposta a uma requisição HTTP
Return value:
Retorna o header e o body da resposta da requisição - getHttpHeader (header, fieldName)
-
Obtém o valor de um determinado campo de uma resposta HTTP
Parameters
- header: Conteúdo do cabeçalho da resposta HTTP de onde deseja-se extrair o valor de um campo do cabeçalho
- fieldName: Nome do campo no cabeçalho HTTP
- request (url, callback, method, params, userAgent, headers, user, password, port)
-
Envia uma requisição HTTP para um determinado servidor
Parameters
- url: URL para a página que deseja-se acessar. A mesma pode incluir um número de porta, não necessitando usar o parâmetro port.
- callback: Função de callback a ser executada quando a resposta da requisição for obtida. A mesma deve possuir em sua assinatura, um parâmetro header e um body, que conterão, respectivamente, os headers retornados e o corpo da resposta (os dois como strings).
- method: Método HTTP a ser usado: GET ou POST. Se omitido, é usado GET. onde a requisição deve ser enviada
- params: String com o conteúdo a ser adicionado à requisição, ou uma tabela, contendo pares de paramName=value, no caso de requisições post enviando campos de formulário. Deve estar no formato URL Encode. No caso de requisições GET, os parâmetros devem ser passados diretamente na URL. Opcional
- userAgent: Nome da aplicação/versão que está enviando a requisição. Opcional
- headers: Headers HTTP adicionais a serem incluídos na requisição. Opcional
- user: Usuário para autenticação básica. Opcional
- password: Senha para autenticação básição. Opcional
- port: Porta a ser utilizada para a conexão. O padrão é 80, no caso do valor ser omitido. A porta também pode ser especificada diretamente na URL. Se for indicada uma porta lá e aqui no parâmetro port, a porta da url é que será utilizada e a do parâmetro port será ignorada.
Return value:
Retorna o header e o body da resposta da requisição HTTP - splitUrl (url)
-
Obtém uma URL e divide a mesma em protocolo, host, porta e path
Parameters
- url: URL a ser dividida
Return value:
Retorna o protocolo, host, porta e o path obtidas da URL. Caso algum destes valores não exita na URL, é retornada uma string vazia no seu lugar.