Descrição
Httpquote - Integração. Requisição de informação web. HTTP
|
Sintaxe
| Httpquote( < cUrl >, < cMethod >, [ cGETParms ], [ cPOSTParms ], [ nTimeOut ], [ aHeadStr ], [ @cHeaderRet ] ) |
Parâmetros
| Par |
Nome |
Tipo |
Descrição |
Default |
Obg |
Ref |
| 01 |
cUrl |
caractere |
Corresponde ao endereço HTTP, juntamente com a pasta e o documento solicitados |
|
X |
|
| 02 |
cMethod |
caractere |
Define o HTTP Method que será utilizado, permitindo outros além de POST/GET |
|
X |
|
| 03 |
cGETParms |
caractere |
Corresponde ao endereço HTTP, juntamente com a pasta e o documento solicitados |
|
|
|
| 04 |
cPOSTParms |
caractere |
Corresponde à StringList de parâmetros a serem enviados ao servidor HTTP através do pacote HTTP. Caso não especificado, este parâmetro é considerado vazio ("") |
|
|
|
| 05 |
nTimeOut |
numérico |
Especificamos o tempo em segundos (máximo) de inatividade permitido durante a recepção do documento. Caso não especificado, o valor padrão assumido é 120 segundos (2 minutos |
|
|
|
| 06 |
aHeadStr |
array |
Permite especificar um array com strings a serem acrescentadas ao Header da requisição HTTP a ser realizada |
|
|
|
| 07 |
cHeaderRet |
caractere |
Retorna através de referência o header de resposta HTTP enviado pelo servidor requisitado. Variável deve ser declarada antes da chamada da função |
|
|
|
Retorno
| Retorno |
Tipo |
Descrição |
| cResponse |
Character |
Retorna a string correspondendo ao documento solicitado |
Exemplo
#INCLUDE "TOTVS.CH"
User Function HTTPQuote()
Local cRoute := 'xxxxx') as character
Local cRespJSON := '' as character
Local cHeaderRet := '' as character
Local cRetResponse := '' as character
cRespJSON := HTTPQuote(cRoute, "GET", "", , , Self:aHeadStr, @cHeaderRet)
cRespJSON := DecodeUTF8(cRespJSON)
If !Empty(cRespJSON) .AND. At('200 OK',cHeaderRet) > 0
Endif
Return( Nil )
Resultado
Informação Adicional
|
Na passagem de parâmetros GET e POST, deve-se observar ao formato da string a ser passada como parâmetros, pois a mesma segue o formato URI (Uniform Resource Identifiers) : Query Component
|
|
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 o acesso ao documento, como por exemplo o documento não exista, será retornado uma string HTML com a mensagem de erro enviada pelo servidor correspondente
|
|
Quando utilizamos a função HTTPQuote(), podemos especificar um Content-Type diferenciado para o conteúdo postado. Caso não seja especificado um Content-Type, alguns servidores tratam a informação postada como sendo um dado do tipo 'application/x-www-form-url', seria o equivalente a um formulário HTML postado via Browser. Outros servidores poderão não reconhecer tal informação postada dessa forma. Para especificar que o conteúdo postado deve ser tratado como um POST de formulário HTTP, devemos passar no parâmetro aHeadStr, um elemento contendo 'Content-Type: application/x-www-form-url
|
Gostou? Compartilhe com seus amigos e deixe um comentário! 😎