4D v16.3

HTTP Get

Página Inicial

 
4D v16.3
HTTP Get

HTTP Get 


 

HTTP Get ( url ; resposta {; nomesCab ; valoresCab}{; *} ) -> Resultado 
Parâmetro Tipo   Descrição
url  Texto in URL ao qual enviar o pedido
resposta  Texto, BLOB, Imagem, Objeto in Resposta da solicitação
nomesCab  Array texto in Nomes dos cabeçalhos da solicitação
in Nomes dos cabeçalhos devolvidos
valoresCab  Array texto in Valores dos cabeçalhos da solicitação
in Valores dos cabeçalhos devolvidos
Operador in Se passado, a conexão se mantém (keep-alive)
Se omitida,a conexão é fechada automaticamente
Resultado  Inteiro longo in Código de estado HTTP

O comando HTTP Get envia diretamente um pedido HTTP GET a um URL específico e processa a resposta do servidor HTTP.

Passe no parâmetro url o URL ao qual enviar a solicitação. A sintaxes a utilizar é:

http://[{user}:[{password}]@]host[:{port}][/{path}][?{queryString}]

Por exemplo, pode passar as seguintes cadeias:

    http://www.myserver.com
    http://www.myserver.com/path
    http://www.myserver.com/path?name="jones"
    https://www.myserver.com/login (*)
    http://123.45.67.89:8083
    http://john:smith@123.45.67.89:8083

(*) Durante as solicitações HTTPS, a autoridade do certificado não é verificada.

Depois da execução do comando, o parâmetro resposta recupera o resultado do pedido devolvido pelo servidor. Este resultado corresponde ao corpo (body) da resposta, sem os cabeçalhos (headers).
Pode passar variáveis de diferentes tipos em resposta:

  • Texto: quando o resultado se espera em forma de texto codificado em UTF16
  • BLOB: quando o resultado se espera em forma binária.
  • Imagem: quando o resultado se espera em forma de imagem.
  • Objeto: quando o resultado se espera em forma de objeto C_OBJECT.

Nota: quando se passar uma variável de texto em resposta, 4D tentará decodificar os dados devolvidos desde o servidor. 4D primeiro tenta recuperar o conjunto de caracteres do cabeçalho de tipo de conteúdo, depois do conteúdo utilizando um BOM e, finalmente, busca qualquer atributo http-equiv charset (em conteúdo html) ou codificação (para xml). Se não puder detectar nenhum charset, 4D tentará decodificar a resposta em ANSI. Se a conversão falhar, o texto resultante ficará vazio. Se não tiver certeza  se o servidor devolve uma informação charset ou BOM, mas conhece a codificação, é mais preciso passar resposta em BLOB e chamar ao Convert to text.

Se passado um BLOB, conterá o texto, a imagem ou todo tipo de conteúdo (.wav, .zip, etc.) devolvido pelo servidor. A continuação, deve gerenciar a recuperação destes conteúdos (os cabeçalhos não estão incluídos no BLOB). Se passar um objeto de tipo C_OBJECT, se a petição devolve um resultado com o conteúdo tipo "aplicação/json" (ou "algo/json"), 4D tenta analisar o conteúdo JSON para gerar o objeto.

Em nomesCab e valoresCab passe os arrays que contém os nomes e os valores dos cabeçalhos da solicitação.
Depois da execução do método, estes arrays contém os nomes e os valores dos cabeçalhos devolvidos pelo servidor HTTP. Especificamente, este principio lhe permite administrar seus cookies.

O parâmetro * permite ativar o mecanismo keep-alive para a conexão ao servidor. Por defeito, este parâmetro se omite, keep-alive não está ativo.

O comando devolve o código do estado HTTP padrão (200=OK...) tal qual foi devolvido pelo servidor. A lista de códigos de estado HTTP está no RFC 2616.
Caso a conexão ao servidor não seja possível por uma razão relacionada com a rede (DNS Failed, Server not reachable...), o comando devolve 0 e é gerado um erro. Você pode interceptar utilizando um método instalado pelo comando ON ERR CALL.

Recuperação do logo 4D no sitio web de 4D:

 C_TEXT(URLPic_t)
 URLPic_t:="http://www.4d.com/sites/all/themes/dimention/images/home/logo4D.jpg"
 ARRAY TEXT(HeaderNames_at;0)
 ARRAY TEXT(HeaderValues_at;0)
 C_PICTURE(Pic_i)
 $httpResponse:=HTTP Get(URLPic_t;Pic_i;HeaderNames_at;HeaderValues_at)

Recuperação de um RFC:

 C_TEXT(URLText_t)
 C_TEXT(Text_t)
 URLText_t:="http://tools.ietf.org/rfc/rfc1.txt"
 ARRAY TEXT(HeaderNames_at;0)
 ARRAY TEXT(HeaderValues_at;0)
 $httpResponse:=HTTP Get(URLText_t;Text_t;HeaderNames_at;HeaderValues_at)

Recuperação de um vídeo:

 C_BLOB(vBlob)
 $httpResponse:=HTTP Get("http://www.example.com/video.flv";vBlob)
 BLOB TO DOCUMENT("video.flv";vBlob)



Ver também 

HTTP Request

 
PROPRIEDADES 

Produto: 4D
Tema: Cliente HTTP
Número 1157

Este comando modifica a variável sistema ErrorThis command can be run in preemptive processes

 
HISTÓRIA 

Criado por: 4D v13
Modificado: 4D v14

 
ARTICLE USAGE

Manual de linguagem 4D ( 4D v16)
Manual de linguagem 4D ( 4D v16.1)
Manual de linguagem 4D ( 4D v16.2)
Manual de linguagem 4D ( 4D v16.3)