Página 1 de 1
Como obter response Headers de MSXML2.ServerXMLHTTP.6.0
Enviado: 18 Set 2023 10:37
por NiltonGM
Pessoal, estou usando a dll MSXML2.ServerXMLHTTP.6.0 para consumir uma API, quanto o status de retorno é 200, beleza, o endpoint específico que estou usando sempre retorna um json, Content-Type: application/json, mas quando o retorno status é entre 400 à 599 pode-se retornar um json de error ou um texto, eu teria que checar o Content-Type para saber se é application/json ou text, qual é o método ou propriedade dessa dll para verificar o Content-Type do header de retorno? Procurei até na documentação oficial da MS mas não achei nada disso, eu só consigo acessar o responseBody e o responseText. Ou seja: Como acesso o cabeçalho HTTP “Content-Type” da MSXML?
Grato.
Como obter response Headers de MSXML2.ServerXMLHTTP.6.0
Enviado: 18 Set 2023 11:10
por NiltonGM
**RESOLVIDO**
Só para deixar registrado: Consultei na web, nada, consultei a IA do Bing MS mais confundiu e nada, fui no ChatGPT e voilá, ela me trouxe o método getRensponseHeader("Content-Type"), Bingo!
Em harbour ficou assim:
Código: Selecionar todos
content_type := conexao:getResponseHeader("Content-Type")
// Retornou: application/json
Nota: também tem o getResponseAllHeaders() que retorna todos os headers!
Abraços galera Harbour!
Como obter response Headers de MSXML2.ServerXMLHTTP.6.0
Enviado: 20 Set 2023 16:14
por clodoaldomonteiro
Boa tarde.
Com essa função, eu consulto um CNPJ num WebService, usando MSXML2.
Código: Selecionar todos
////////////////////////////////////////////////////////////////////////////////
//https://pctoledo.org/forum/viewtopic.php?f=43&p=155455#p155455
//https://pctoledo.org/forum/viewtopic.php?f=4&t=23628 (com Header)
//https://pctoledo.org/forum/viewtopic.php?f=4&t=17427 (usando a hb_JSONDecode( cJSON, @hJSON ) )
//https://nfe.io/docs/desenvolvedores/rest-api/consulta-de-cnpj-v1/ (para consultas)
Function CNPJ_Consulta( cCnpj )
Local mSite := "http://receitaws.com.br/v1/cnpj/", oHttp, hCNPJA := Hash(), mJSONCNPJ, hJSON := Hash()
//mSite := "https://publica.cnpj.ws/cnpj/" //mais completo
If Len( cCnpj ) <> 14
REturn NIL
Endif
Begin Sequence
Try
oHttp := CreateObject("MSXML2.ServerXMLHTTP")
oHttp:Open("GET", mSite + cCNPJ, .F.)
oHttp:send()
CATCH oError
msg := 'Internet Error: 010' + CRLF
msg += 'Aviso..: Erro verificado ao fazer requisição de CNPJ no Site indicado.' + HB_Eol()
msg += 'Site...:' + mSite + HB_Eol()
msg += 'CNPJ...:' + cCNPJ + HB_Eol()
msg += cl_getError(oError, .t.)
msgError ( msg )
hCNPJA := NIL
Break
End
If Empty( oHttp:responseText )
hCNPJA := NIL
Break
ElseIf '"ERROR"' $ oHttp:responseText
msg := 'Request error: 015' + CRLF
msg += 'Aviso..: O retorno da consulta de CNPJ está com erros.' + HB_Eol()
msg += '- Aguarde um minuto e tente novamente.' + HB_Eol()
msg += 'Site...:' + mSite + HB_Eol()
msg += 'CNPJ...:' + cCNPJ + HB_Eol()
msg += 'Response:' + oHttp:responseText + HB_Eol()
msg += 'Status..:' + Str(oHttp:status, 3) + HB_Eol()
msg += cl_getError(, .t.)
MsgError ( msg, .t. )
hCNPJA := NIL
Break
ElseIf 'Too many' $ oHttp:responseText
msg := 'Request error: 020' + CRLF
msg += 'Aviso..: Muitas tentativas de pesquisar CNPJ no Site indicado.' + HB_Eol()
msg += '- Aguarde um minuto e tente novamente.' + HB_Eol()
msg += 'Site...:' + mSite + HB_Eol()
msg += 'CNPJ...:' + cCNPJ + HB_Eol()
msg += 'Response:' + oHttp:responseText + HB_Eol()
msg += 'Status..:' + Str(oHttp:status, 3) + HB_Eol()
MsgAtencao ( msg )
hCNPJA := NIL
Break
Endif
mJSONCNPJ := HB_AnsiToOem(oHttp:responseText)
ADOStringGrava(mJSONCNPJ + CRLF)
hCNPJA := JSontoHash( mJSONCNPJ )
oHttp := NIL
End Sequence
Return hCNPJA
Abraços
Como obter response Headers de MSXML2.ServerXMLHTTP.6.0
Enviado: 25 Set 2023 21:01
por NiltonGM
Legal Clodoaldo!