Pessoal, bom dia.
Estou com um aparente problema no HB_Base64Encode. Estou fazendo uns testes para me inteirar sobre APIs e num teste de
uma rotina cedida por um amigo, estava dando erro de autenticação na URL que estou testando.
Estou compilando com a HMG 3.5 ANSI. Só que, por curiosidade, compilei com a versão 3.0.46 que ainda uso e deu response correto.
Investigando, notei que a função gerava um string com 64 posições enquanto a gerada com a 3.5 gera com 68 poisções. Vendo mais fundo,
notei que entrou no fim CHR(10) ou CHR(13) que deve ter causado a recusa da autenticação.
Será que tem a ver com essa alteração que o Quintas reportou aí em cima?
A função:
Código: Selecionar todos
Function Teste_02()
mtj_url := "" // 'endereço da API'
mtj_username := 'username' // 'usuário' - len=14
mtj_password := 'senha!' // 'senha' - len=32
mtj_ultimadata := CTOD('25/07/2023')
loXMLHTTP := CREATEOBJECT("MSXML2.XMLHTTP")
xString := mtj_username + ':' + mtj_password
xUrl := mtj_url + dtos(mtj_ultimadata)
xAuth := HB_Base64Encode( xString, LEN(xString) )
WITH OBJECT loXMLHTTP //AS MSXML2.XMLHTTP
:OPEN("GET", xUrl, .f.)
:setRequestHeader("Content-Type","application/json")
:setRequestHeader("Authorization","Basic " + xAuth )
:send()
mresposta = :responsetext
endwith
MsgInfo('Resposta:' + chr(13) + mresposta)
Return Nil
A versão 3.5 já deve ter essa atualização do 3.2 não? Senão, como resolve isso?
Atenção! Msg Editada por Itamar Lins Jr. para remove login e senha.
Saudações,
Mario.