Descrição
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! 😎