Árvore de páginas

Versões comparadas

Chave

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

Pagetitle

...

...

HttpPost
HttpPost

...

Permite

...

emular

...

um

...

client

...

HTTP

...

-

...

Hypertext

...

Transfer

...

Protocol,

...

através

...

de

...

uma

...

função

...

AdvPL,

...

postando

...

um

...

bloco

...

de

...

informações

...

para

...

uma

...

determinada

...

URL

...

em

...

um

...

servidor

...

Web,

...

utilizando

...

o

...

método

...

POST,

...

permitindo

...

a

...

passagem

...

de

...

parâmetros

...

adicionais

...

via

...

URL

...

e

...

aguardando

...

por

...

um

...

tempo

...

determinado

...

(time-out)

...

pela

...

resposta

...

do

...

servidor

...

solicitado.

Sintaxe

...

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

Parâmetros

HTTPPost ( < cUrl>, [ cGETParms], [ cPOSTParms], [ nTimeOut], [ aHeadStr], [ @cHeaderRet] ) --> cReturn

...

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 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 ("").

 

 

...

cPostParms

...

caractere

Indica uma string de parâmetros, do tipo POST, que serão enviados ao servidor HTTP através

...

da URL. Caso não seja especificado, este parâmetro será considerado vazio ("").

 

 

nTimeOut

...

numérico

Indica 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.

 

 

aHeadStr

...

vetor

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

...

.

 

 

...

cHeaderGet

...

caractere

Indica 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

 

Retorno

Nome

Tipo

Descrição

cRet

caractere

...

Retorna a string que corresponde a requisição solicitada.

Observações

  • O parâmetro <cGETParms> representa uma lista de itens, separados por '&'. Pois, a mesma segue o formato URI - Uniform Resource Identiers: Query Componet.

...

  • Exemplo:

...

  • "param1=value1&param2=value2"
    Neste caso, ao realizar

...

  • o POST para o endereço, este seria completado com os parâmetros Get.

...

  • Exemplo

...

  • http://www.totvs.com?param1=value1&param2=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).
  • Caso não seja possível acessar o documento como, por exemplo, o documento não existe, o retorno será uma

...

  • string HTML com a mensagem de

...

  • erro HTML enviada pelo servidor correspondente.
  • Os headers da requisição HTTP a ser enviada serão montados automaticamente, contendo o Host, Accept, e Content-Length.

...

  • Caso o parâmetro aHeadStr não seja especificado, o cabeçalho http da requisição enviada será montado internamente especificando que o conteúdo postado deve ser tratado como "application/x-www-form-urlencoded", identificando ao destinatário da requisição que o conteúdo do pacote HTTP deve ser tratado como um post de um formulário html. Caso o

...

  • parâmetro aHeadStr seja especificado, devemos acrescentar nele qual é o Content-type da requisição, pois sem esta informação alguns servidores de HTTP, inclusive o próprio Application Server Protheus configurado como HTTP Server, não reconhecerão o conteúdo postado como campos de um formulário.
  • Para especificar que o conteúdo postado deve ser tratado como

...

  • um POST de formulário HTTP, deve-se passar no parâmetro <aHeadStr> um elemento contendo a informação 'Content-Type: application/x-www-form-urlencoded'

Exemplos

Bloco de código
languagecpp
themeEclipse
titleExemplo 1
linenumberstrue
collapsefalse
#INCLUDE "TOTVS.CH"


#INCLUDE "XMLCSVCS.CH"


user function tstpost()


Local cUrl := "http://www.google.com"


Local nTimeOut := 120 


Local aHeadOut := {}


Local cHeadRet := ""


Local sPostRet := "" 


aadd(aHeadOut,'User-Agent: Mozilla/4.0 (compatible; Protheus '+GetBuild()+')')


aadd(aHeadOut,'Content-Type: application/x-www-form-urlencoded')


sPostRet := HttpPost(cUrl,"REQUEST=1212","EXAMPLEFIELD=DUMMY",nTimeOut,aHeadOut,@cHeadRet)


if !empty(sPostRet) 


  conout("HttpPost Ok") 


  varinfo("WebPage", sPostRet)


else 


  conout("HttpPost Failed.") 


  varinfo("Header", cHeadRet)


Endif


Return

Abrangência

Advanced Protheus 6.09 , Advanced Protheus 7.10 , Microsiga Protheus 8.11 , Protheus 10 , TOTVS Application Server 10 , ByYou Application Server
 

Veja também