Árvore de páginas

Versões comparadas

Chave

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

Pagetitle
HTTPSGet
HTTPSGet

Função: HTTPSGet

...

Permite emular um Client HTTP - Hypertext Transfer Protocol, utilizando protocolo HTTPS através de uma função AdvPL, postando um bloco de informações para um determinado documento publicado em um servidor Web, utilizando o método GET, 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
HTTPSGet( <
cUrl>
 cURL >, <
cCertifcate>
 cCertificate >, <
cPrivKey>
 cPrivKey >, <
cPassPhrase>
 cPassword >, [ cGETParms ], [ nTimeOut ], [ aHeadStr ], [ @cHeaderRet ], [ lClient ] )
--> cReturn

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

  

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 GET será feito pelo SmartClient (.T.) ou pelo AppServer (.F.). Valor padrão: .F..

  

Retorno

...

Nome

Tipo

Descrição

cRet

caractere

Retorna a string que corresponde

...

à 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 Component.

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

Neste caso, ao realizar o GET 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
value1&m2=value2.
 

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

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.

  • Caso o GET seja feito no AppServer e não for passado um caminho no environment para o parâmetro cCertificate, a aplicação será encerrada com uma exceção cuja mensagem será: "Only server path are allowed to Certificate on HttpSGet".
  • Caso o POST seja feito no AppServer e não for passado um caminho no environment para o parâmetro cPrivKey, a aplicação será encerrada com uma exceção cuja mensagem será: "Only server path are allowed to PrivKey on HttpSGet".

Exemplos

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

user function TSTGetSSL()
  Local cURL := "https
Importante

Função disponível para build superior a 7.00.090818P.

 

#INCLUDE "TOTVS.CH"
#INCLUDE "XMLCSVCS.CH"
user function tstgetssl()
Local cUrl := "HTTPS
://homologacao.nfe.fazenda.sp.gov.br:443/nfeWEB/services/NfeStatusServico.asmx"


  Local nTimeOut := 120


  Local aHeadOut := {}


  Local cHeadRet := ""


  Local 
sGetRet
cGetRet := ""


  
  // Acrescenta o UserAgent na requisição ...


  // http://tools.ietf.org/html/rfc3261#page-179

aadd(

  
  AAdd( aHeadOut, 'User-Agent: Mozilla/4.0 (compatible; Protheus ' + GetBuild() + ')'
)
sGetRet
 )
  cGetRet := 
HttpSGet
HTTPSGet(
cUrl
 cURL, "\certs\cert.pem", "\certs\privkey.pem", "pwdprivkey", "WSDL",
"",
 nTimeOut, aHeadOut, @cHeadRet
)
 )
  
  if 
empty
Empty(
sGetRet
 sPostRet )


    conout( "
Ok
Fail 
HttpSGet
HTTPSGet" )


  else
    conout( "
WebPage
OK HTTPSGet"
,
 
sGetRet
)

else

    
conout
varinfo( "WebPage"
Fail
, 
HttpSGet.
cGetRet 
Verifique
)
 
conf.
 
de Proxy")
endif
  
  varinfo( "Header", cHeadRet )

endif

return

Abrangência

Protheus 10 , TOTVS Application Server 10 , ByYou Application Server

Função disponível, na linguagem AdvPL, para build superior a 7.00.090818P.

Veja também

...