Árvore de páginas

Você está vendo a versão antiga da página. Ver a versão atual.

Comparar com o atual Ver Histórico da Página

Versão 1 Próxima »

Função: HTTPCGet

Permite emular um client HTTP - Hypertext Transfer Protocol diretamente da máquina onde o SmartClient está sendo executado, 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.

HTTPCGet ( < cUrl>, [ cGetParms], [ nTimeOut], [ aHeadStr], [ @cHeaderRet] ) --> cResponse

NomeTipoDescriçãoObrigatórioReferência
cUrlCaracterIndica o endereço HTTP com a pasta e o documento solicitado. X
cGetParmsCaracterIndica uma string de parâmetros, do tipo GET, que serão enviados ao servidor HTTP através da URI. Caso não seja especificado, este parâmetro será considerado vazio ("").
nTimeOutNuméricoIndica o tempo, em segundos, máximo de inatividade permitido durante a recepção do documento. Caso não seja especificado, o valor assumido será de 120 segundos.
aHeadStrVetorIndica o array que contêm as strings que serão acrescentadas no header da requisição HTTP que será realizada.
cHeaderRetCaracterIndica a string que conterá o header de resposta HTTP enviado pelo servidor requisitado. Observação: A variável deve ser declarada antes da chamada da função. X
    cResponse(caracter)
  • Retorna a string que corresponde a requisição solicitada.

Importante
Esta função estará disponível após a build 7.00.101202A.
 

O parâmetro  representa um texto que será enviado via "Get".

Exemplo: "param1=value1¶m2=value2"

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).
Ao utilizar a função HTTPCGet(), pode-se especificar um Content-Type diferenciado para o conteúdo postado. Caso não seja especificado um Content-Type, alguns servidores tratam a informação postada como sendo um dado do tipo 'application/x-www-form-url', ou seja, seria o equivalente a um formulário HTML postado via browser. Desta forma, outros servidores poderão não reconhecer tal informação postada dessa forma. Para especificar que o conteúdo postado deve ser tratado como um Get de formulário HTTP, deve-se passar no parâmetro  um elemento 'Content-Type: application/x-www-form-url'.

#INCLUDE "TOTVS.CH"User Function tstCGet()Local cUrl			:= "endereço do get"Local cGetPar	:= "String com parâmetros a ser enviado na URL"Local nTimeOut	:= 2 //SegundosLocal aHeaderStr:= {}Local cHeaderRet:= ""Local cResponse	:= ""Local cErro		:= ""aAdd(aHeaderStr,"Content-Type| text/xml; charset=utf-8" )aAdd(aHeaderStr,"Content-Length| " + Alltrim(Str(Len(cGetPar))) )cResponse := HttpCGet( cUrl , cGetPar , nTimeOut , aHeaderStr , @cHeaderRet )VarInfo("Header:", cHeaderRet)VarInfo("Conteudo:" ,cResponse) VarInfo("Erro:", HTTPGetStatus(cErro) )VarInfo("Erro:", cErro )Return
Protheus 10 , TOTVS Application Server 10 , ByYou Application Server

  • Sem rótulos