Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

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

    e 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

    Nota
    icontrue
    titleAtenção

    Para fazer a passagem de valores dos parâmetros de GET, 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 (NILNil).
  • 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'

...

Bloco de código
languagecpp
themeEclipsetitleExemplo 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

Veja também