Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
portuguese
Composition Setup
import.css=/download/attachments/3279126062824/newLayouttecnologia.css

Pagetitle

...

HttpGet

...

Função: HTTPGet

...

HttpGet

Permite emular um client HTTP - Hypertext Transfer Protocol, através de uma função da linguagem AdvPL, acessando um determinado documento HTML, publicado em um servidor Web, utilizando o método GET, permitindo a passagem de parâmetros via URL e aguardando por um tempo determinado (time-out)

...

pela

...

resposta

...

do

...

servidor

...

solicitado.

Sintaxe

HTTPGet ( < cUrl>, [ cGETParms], [ nTimeOut], [ aHeadStr], [ @cHeaderRet] ) --> cResponse

...

Bloco de código
collapsefalse
HttpGet( < cUrl >, [ cGetParms ], [ nTimeOut ], [ aHeadStr ], [ @cHeaderGet ] )

Parâmetros

Nome

Tipo

Descrição

Obrigatório

Referência

cUrl

...

caractere

Indica o endereço HTTP com

...

a pasta e o documento solicitado.

X

...


cGetParms

...

caractere

Indica a lista de strings de parâmetros que serão enviadas ao servidor HTTP, através da URI. Caso este parâmetro não seja especificado, o mesmo será considerado vazio ("").



nTimeOut

...

numérico

Indica o tempo, em segundos, máximo de inatividade permitido durante a recepção do documento. Caso este parâmetro não seja especificado, o valor padrão assumido será de 120 segundos (2 minutos).



aHeadStr

...

vetor

Indica o array que contêm as strings que serão acrescentadas ao header da requisição que será realizada.

...

Utilizar "|" (pipes) para separação entre parâmetro e valor.



cHeaderGet

caractere

...

Indica o retorno, através de referência, da header de resposta HTTP enviada pelo servidor requisitado. Observação: A variável deve ser declarada antes da chamada da função.


X

Retorno

...

Nome

Tipo

Descrição

cRet

caractere

Retorna uma string HTML que corresponde ao documento solicitado.

Informações
icontrue
titleObservações
Nota
icontrue
titleAtenção

Na passagem do parâmetro GET, deve-se ficar atento ao formato da string que será passada como parâmetro, pois a mesma segue o formato URI - Uniform Resource Identifiers: Query Component. Para tanto, utilize no valor do parâmetro a função Escape.

  • Caso não seja retornado o documento antes do término do Time-out, especificado na chamada da função, ou não seja possível localizar o servidor, seja por falha de resolução de DNS ou por erro de sintaxe ao especificar a URL, a função retornará nulo (
NIL
  • Nil).
  • Caso não seja possível o acesso ao documento, como por exemplo o documento não exista, a função retornará uma string HTML com a mensagem de erro HTML enviada pelo servidor correspondente.
  • Campos 'Content-Length' não deverão ser acrescentados manualmente no cabeçalho HTTP via parâmetro <aHeadStr>; caso sejam acrescentados e indiquem tamanho do corpo da mensagem igual ao esperado, serão descartados silenciosamente; caso sejam acrescentados e indiquem tamanho do corpo da mensagem diferente do esperado, serão descartados e um aviso será gerado no log da aplicação.

Exemplos

Bloco de código
languagecpp
themeEclipse
linenumberstrue
collapsefalse
#INCLUDE "TOTVS.CH"
Neste exemplo, será solicitado ao servidor HTTP o conteúdo de uma página e a chamada de uma página .ASP passando os parâmetros via GET.
User Function tstGet()
Local cHtmlPage

// Buscar 
páginacHtmlPage
página
cHtmlPage := Httpget('http://www.servidor.com.br/pageteste.htm')
conout("WebPage", cHtmlPage)

// Chamar página passando 
parâmetroscHtmlPage
parâmetros
cHtmlPage := Httpget('http://www.servidor.com.br/funteste.asp?Id=123&Nome=Teste')
conout("WebPage", cHtmlPage)

// ou

cHtmlPage := Httpget('http://www.servidor.com.br/funteste.asp','Id=123&Nome=Teste')
conout("WebPage", cHtmlPage)
Return Advanced Protheus 6.09 , Advanced Protheus 7.10 , Microsiga Protheus 8.11 , Protheus 10 , TOTVS Application Server 10 , ByYou Application Server


// ou utilizando a função Escape (recomendado)
cHtmlPage := Httpget('http://www.servidor.com.br/funteste.asp','Id=' + Escape('123') + '&Nome=' + Escape('Ana Silva'))
conout("WebPage", cHtmlPage)
Return

Veja também