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: 20416
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
- Curtiram: 1 vez
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, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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: 20416
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
- Curtiram: 1 vez
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, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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.
