Árvore de páginas

Versões comparadas

Chave

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

...

Bloco de código
collapsefalse
HTTPSPost( < cURL >, < cCertificate >, < cPrivKey >, < cPassword >, [ cGETParms ], [ cPOSTParms ], [ nTimeOut ], [ aHeadStr ], [ cHeaderRet@cHeaderRet ], [ lClient ] )

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

 

cCertificate

caractere

Indica o path do arquivo, em formato PEM (modelo Apache), do arquivo que contém o certificado digital.

X

 

cPrivKey

caractere

Indica o path da chave privada, em formato PEM (modelo Apache), do arquivo que contém a chave privada, referente ao certificado digital.

X

 

cPassword

caractere

Indica a senha que será utilizada para a abertura da chave privada. Para uma chave privada que não possua senha deve ser informada uma string vazia.

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

  

cPOSTParms

caractere

Indica uma string de parâmetros, do tipo POST, que serão enviados ao servidor HTTP através do pacote HTTP. Caso não seja especificado, este parâmetro é 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.

  

cHeaderRet

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

lClient

lógico

Indica se o POST será feito pelo SmartClient (.T.) ou pelo AppServer (.F.). Valor padrão: .F..

  

...

Nome

Tipo

Descrição

cRet

caractere

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

Observações

...

Bloco de código
linenumbersfalse
collapsefalse
Exemplo: "param1=value1&m2=value2".

Neste caso, ao realizar o POST para o endereço, este seria completado com os parâmetros Get.

Bloco de código
linenumbersfalse
collapsefalse
Exemplo: http://www.totvs.com?param1=value1&m2=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 caso 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).

...

Bloco de código
languagecpp
themeEclipse
linenumberstrue
collapsefalse
#include "totvs.ch"
#include "xmlcsvcs.ch"

user function TSTPostSSL()
  Local cURL := "https://homologacao.nfe.fazenda.sp.gov.br:443/nfeWEB/services/NfeStatusServico.asmx"
  Local nTimeOut := 120
  Local aHeadOut := {}
  Local cHeadRet := ""
  Local cPostRet := ""
  
  // Acrescenta o UserAgent na requisição ...
  // http://tools.ietf.org/html/rfc3261#page-179
  
  AAdd( aHeadOut, 'User-Agent: Mozilla/4.0 (compatible; Protheus ' + GetBuild() + ')' )
  cPostRet := HTTPSPost( cURL, "\certs\cert.pem", "\certs\privkey.pem", "pwdprivkey", "", "", nTimeOut, aHeadOut, @cHeadRet )
  
  if Empty( sPostRet )
    conout( "Fail HTTPSPost" )
  else
    conout( "OK HTTPSPost" )
    varinfo( "WebPage", cPostRet )
  endif
  
  varinfo( "Header", cHeadRet )
return

...