Clipper On Line • Ver Tópico - Utilizar Rest em Harbour

Utilizar Rest em Harbour

Projeto Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

 

Utilizar Rest em Harbour

Mensagempor hs_paulo » 25 Jun 2020 14:09

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.
hs_paulo
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 25
Data de registro: 02 Set 2015 17:11
Cidade/Estado: Bauru
Curtiu: 24 vezes
Mens.Curtidas: 1 vez

Utilizar Rest em Harbour

Mensagempor Mario Mesquita » 06 Jul 2020 10:54

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:

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)


Fazendo isso, funciona certinho. Não reparem as linhas isoladas, rs

Sds,
Mario.
Avatar de usuário

Mario Mesquita
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 557
Data de registro: 08 Dez 2009 12:47
Cidade/Estado: Rio de Janeiro
Curtiu: 73 vezes
Mens.Curtidas: 13 vezes

Utilizar Rest em Harbour

Mensagempor JoséQuintas » 06 Jul 2020 11:08

Igual assinatura de XML, que algumas são divididas por blocos, como se fosse pra deixar mais "humanas" visualmente.

Dica pra remover caracteres:

cCode := StrTran( cCode, Chr(13) + Chr(10), "" )


Ou remover um de cada vez, se não seguirem esse padrão de estarem juntos
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18152
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1215 vezes

Utilizar Rest em Harbour

Mensagempor Mario Mesquita » 06 Jul 2020 11:24

Valeu, Quintas!

Por isso vc é o mestre, kkkkk Sou todo tosco, já botei no loop...

Abraço,
Mario.
Avatar de usuário

Mario Mesquita
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 557
Data de registro: 08 Dez 2009 12:47
Cidade/Estado: Rio de Janeiro
Curtiu: 73 vezes
Mens.Curtidas: 13 vezes

Utilizar Rest em Harbour

Mensagempor JoséQuintas » 06 Jul 2020 13:44

Mario Mesquita escreveu:Por isso vc é o mestre, kkkkk Sou todo tosco, já botei no loop...


Mas sempre tem outras situações pra usar LOOP.
Uma legal é pra procurar caractere inválido ou coisa do tipo.
E tem também o FOR EACH

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


Detalhe do @ no FOR/EACH, é o que permite atualizar letras em cTexto
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, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18152
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1215 vezes

Utilizar Rest em Harbour

Mensagempor Mario Mesquita » 07 Jul 2020 11:08

Bom dia a todos.

Valeu, Quintas. Sempre dando dicas valiosas. Interessante essa do FOR/EACH. Obrigado.

Sds,
Mario.
Avatar de usuário

Mario Mesquita
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 557
Data de registro: 08 Dez 2009 12:47
Cidade/Estado: Rio de Janeiro
Curtiu: 73 vezes
Mens.Curtidas: 13 vezes

Anterior



Retornar para Harbour

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 5 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro