Ainda não consegui.
a API só funciona com GET e retorna vazio.
Quando faço pelo POSTMAN ou SOAPui retorna o conteudo.
Não sei onde está o meu erro.
Utilizar Rest em Harbour
Moderador: Moderadores
- Mario Mesquita
- Usuário Nível 4

- Mensagens: 613
- Registrado em: 08 Dez 2009 13:47
- Localização: Rio de Janeiro
Utilizar Rest em Harbour
Pessoal, bom dia.
Não entro há um tempinho mas vi esse tópico e tenho uma experiência recente que talvez possa contribuir:
Eu usei uma função para a conversão e, aparentemente, ela tem um bug. É a "HB_Base64Encode".
Ela está gerando com CHR(10) e CHR(13) no meio dos dados convertidos e causa falha na autenticação.
Resolvi tirando esses caracteres do resultado final:
Fazendo isso, funciona certinho. Não reparem as linhas isoladas, rs
Sds,
Mario.
Não entro há um tempinho mas vi esse tópico e tenho uma experiência recente que talvez possa contribuir:
Eu usei uma função para a conversão e, aparentemente, ela tem um bug. É a "HB_Base64Encode".
Ela está gerando com CHR(10) e CHR(13) no meio dos dados convertidos e causa falha na autenticação.
Resolvi tirando esses caracteres do resultado final:
Código: Selecionar todos
FUNCTION Cnv64Hash(xHash)
LOCAL xCnv := ""
// convertendo pra base64 - mr, 17/10/19.
//msginfo(xHash)
//msginfo(str(len(xhash),3,0))
xCnv = HB_Base64Encode( xHash, LEN(xHash) ) // converte o conteúdo do arquivo em base64
//msginfo(str(len(xCnv),3,0))
//wCnv := SUBS(xCnv,1,len(xhash))
//msginfo(xCnv)
wCnv := ""
for k = 1 to len(xCnv)
//msginfo('pos: '+str(k,3,0)+' char: '+subs(xCnv,k,1)+' - asc: '+str(asc(subs(xCnv,k,1)),3,0))
// tirando os chr(10) e chr(13) da chave //
xChar := SUBS(xCnv,k,1)
IF ASC(xChar) # 10 .AND. ASC(xChar) # 13
wCnv += xChar
ENDIF
next
RETURN ALLTRIM(wCnV)
Sds,
Mario.
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Utilizar Rest em Harbour
Igual assinatura de XML, que algumas são divididas por blocos, como se fosse pra deixar mais "humanas" visualmente.
Dica pra remover caracteres:
Ou remover um de cada vez, se não seguirem esse padrão de estarem juntos
Dica pra remover caracteres:
Código: Selecionar todos
cCode := StrTran( cCode, Chr(13) + Chr(10), "" )
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- Mario Mesquita
- Usuário Nível 4

- Mensagens: 613
- Registrado em: 08 Dez 2009 13:47
- Localização: Rio de Janeiro
Utilizar Rest em Harbour
Valeu, Quintas!
Por isso vc é o mestre, kkkkk Sou todo tosco, já botei no loop...
Abraço,
Mario.
Por isso vc é o mestre, kkkkk Sou todo tosco, já botei no loop...
Abraço,
Mario.
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Utilizar Rest em Harbour
Mas sempre tem outras situações pra usar LOOP.Mario Mesquita escreveu:Por isso vc é o mestre, kkkkk Sou todo tosco, já botei no loop...
Uma legal é pra procurar caractere inválido ou coisa do tipo.
E tem também o FOR EACH
Código: Selecionar todos
FOR EACH cLetra IN @cTexto DESCEND
DO CASE
CASE cLetra $ "0123456789"
CASE cLetra $ "abcdefgh..."
CASE cLetra $ "ABCDEFGH..."
CASE cLetra == "é", cLetra := "e"
CASE cLetra == Chr(13); cLetra := ""
CASE cLetra == Chr(10); cLetra := ""
OTHERWISE
? cLetra, Asc( cLetra ), Substr( cTexto, cLetra:__EnumIndex - 10, 20 )
ENDCASE
NEXT
O DESCEND, é porque não sei o comportamento se trocar a letra por "", se o FOR/EACH se perde, então vai de trás pra frente.... rs
De um jeito ou de outro, a gente resolve.
E se não existir função praquilo, a gente inventa.
Mas de nada adiantaria conhecer a função, se não soubesse desse detalhe que mencionou sobre assinatura.
No final, todo mundo é mestre, cada um em uma coisa, e assim, todo mundo vai ensinando e aprendendo.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- Mario Mesquita
- Usuário Nível 4

- Mensagens: 613
- Registrado em: 08 Dez 2009 13:47
- Localização: Rio de Janeiro
Utilizar Rest em Harbour
Bom dia a todos.
Valeu, Quintas. Sempre dando dicas valiosas. Interessante essa do FOR/EACH. Obrigado.
Sds,
Mario.
Valeu, Quintas. Sempre dando dicas valiosas. Interessante essa do FOR/EACH. Obrigado.
Sds,
Mario.
