Á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/6062824/tecnologia.css

Pagetitle
HttpPost
HttpPost

...

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.

...

Bloco de código
languagecpp
themeEclipse
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
Nota
icontrue
titleAtenção

Para utilização do 'Content-Type: multipart/form-data' atente-se a formatação dos Parametros do Post (uma linha em branco deve ser inserida sempre antes do conteúdo de cada elemento).

É possível informar o boundary que será utilizado na transmissão utilizando a seguinte sintaxe: "Content-Type: multipart/form-data; boundary=MyBoundary"

Quando o filename é informado, o conteúdo do arquivo será carregado pelo Application Server e será enviado. Para correta interpretação da mensagem pelo server que receberá o conteúdo do POST é ideal que o Content-type seja especificado. Para lista dos content-types possíveis consulte: http://tdn.totvs.com/display/tec/Valores+de+Content-Types

Essa funcionalidade está disponível apenas em versões iguais ou superiores a: 13.1.3.44,13.2.3.44 e 17.3.0.13.

Bloco de código
languagecpp
themeEclipse
linenumberstrue
collapsefalse
#INCLUDE "TOTVS.CH"
#INCLUDE "XMLCSVCS.CH"
 
user function tstpostMFormData()
Local cUrl := "http://ptsv2.com/t/totvstests/post"
Local nTimeOut := 120
Local aHeadOut := {}
Local cHeadRet := ""
Local sPostRet := ""
aadd(aHeadOut,'User-Agent: Mozilla/4.0 (compatible; Protheus '+GetBuild()+')')
//aadd(Content-Type: multipart/form-data; boundary=TotvsBoundaryTest')                                      //Se desejar informar o boundary
aadd(aHeadOut,'Content-Type: multipart/form-data')
 
cPostParms := 'Content-Disposition: form-data; name="FileTextExample"; filename="D:\Teste.txt" ' + CRLF     //Envio de Arquivo especificando o Content-Type
cPostParms += 'Content-Type: text/plain;' + CRLF
cPostParms += 'Content-Disposition: form-data; name="FileTextExample"; filename="D:\Teste.txt"' + CRLF      //Envio de Arquivo sem espeficar o Content-Type
cPostParms += 'Content-Disposition: form-data; name="someParam"' + CRLF + CRLF                              //Envio de paramentos. Obrigatório Linha em branco antes do conteúdo
cPostParms += 'someParamValue'                                                                              //Conteúdo do Parametro
  
sPostRet := HttpPost(cUrl,"",cPostParms,nTimeOut,aHeadOut,@cHeadRet)
if !empty(sPostRet)
  conout("HttpPost Ok ")
  varinfo("WebPage", sPostRet)
else
  conout("HttpPost Failed.")
  varinfo("Header", cHeadRet)
Endif
Return

...