Histórico da Página
...
Bloco de código | ||
---|---|---|
| ||
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 | ||||
---|---|---|---|---|
| ||||
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 | ||||
---|---|---|---|---|
| ||||
Exemplo: http://www.totvs.com?param1=value1&m2=value2. |
Nota | ||||
---|---|---|---|---|
| ||||
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 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
#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 |
...