Histórico da Página
Composition Setup |
---|
import.css=/download/attachments/3279126062824/newLayouttecnologia.css |
|
Pagetitle | ||||
---|---|---|---|---|
|
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 | ||
---|---|---|
| ||
HTTPSGet( <cUrl> cURL >, <cCertifcate> cCertificate >, <cPrivKey> cPrivKey >, <cPassPhrase> cPassword >, [ cGETParms ], [ nTimeOut ], [ aHeadStr ], [ @cHeaderRet ]) --> cReturn Parâmetros/Elementos , [ 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 (""). | ||
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. |
Informações | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||
O parâmetro <cGetParms><cGetParms> representa uma lista de itens, separados por '&'. Pois, a mesma segue o formato URI - Uniform Resource Identiers: Query ComponetComponent. .
Neste caso, ao realizar o GET para o endereço, este seria completado com os parâmetros Get.
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 ( 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.
|
Exemplos
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
#include "totvs.ch"
user function TSTGetSSL()
Local cURL := "https #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 := "" LocalsGetRet cGetRet := "" // Acrescenta o UserAgent na requisição ... // http://tools.ietf.org/html/rfc3261#page-179aadd 179 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 ) ifempty(sGetRet) Empty( cGetRet ) conout( "Ok FailHttpSGet HTTPSGet" ) else conout( "WebPage OK HTTPSGet", sGetRet )else conout("Fail HttpSGet. Verifique conf. de Proxy") varinfo() varinfo( "WebPage", cGetRet ) endif varinfo( "Header", cHeadRet )endifreturn
return
|
Abrangência
...
Função disponível, na linguagem AdvPL, para build superior a 7.00.090818P.