Clipper On Line • Ver Tópico - webservice com json

webservice com json

Projeto HwGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

 

webservice com json

Mensagempor Wanderlei » 29 Nov 2017 12:25

Boa Tarde Pessoal,
Preciso usar o webservice com o json no Method POST e não estou tendo sucesso, alguem do forum já fez isso?

Exemplo de como estou usando:

METHOD New() CLASS TFIGGY
********************************************************************************

::cAcesso := 'bd6101cdc209a1b5'
::cURL := 'http://figgy.com.br/ws/datarey'
::cConsulta := 'http://www.figgy.com.br/getDataTypeTest?code=' + ::cAcesso
::aRetorno := Hash()

RETURN( SELF )

METHOD enviaProdutos() CLASS TFIGGY
********************************************************************************
Local cParm := '', aRetorno, oServer, nRetorno := 0

cParm :='[{"cliente_id":'+alltrim(::cAcesso)+','+;
'"cliente_nome":"Farmácia 1",'+;
'"reg_ean":"2569875412356",'+;
'"reg_ms":"1130009950013",'+;
'"nome_comercial":"AAS",'+;
'"apresentacao":"100 MG COM CT BL AL PLAS INC X 30",'+;
'"forma_farmaceutica":"COMPRIMIDO SIMPLES",'+;
'"laboratorio":"SANOFI-AVENTIS FARMACÊUTICA LTDA",'+;
'"tipo_produto":"Referência",'+;
'"princ_ativo":"ACIDO ACETILSALICILICO",'+;
'"preco_promocao":3.45,'+;
'"preco_regular":4.55,'+;
'"qtde_estoque":4,'+;
'"data_cadastro":"19/04/2016 15:45:12",'+;
'"data_atualizacao":"21/04/2016 08:45:22"},'+;
'{"cliente_id":'+alltrim(::cAcesso)+','+;
'"cliente_nome":"Farmácia 1",'+;
'"reg_ean":"2487878759456",'+;
'"reg_ms":"1036701660011",'+;
'"nome_comercial":"MICARDIS ANLO",'+;
'"apresentacao":"40MG + 5MG COM CT BL AL/AL X 10 ",'+;
'"forma_farmaceutica":"COMPRIMIDO SIMPLES",'+;
'"laboratorio":"BOEHRINGER INGELHEIM PHARMA GMBH",'+;
'"tipo_produto":"Referência",'+;
'"princ_ativo":"TELMISARTANA BESILATO DE ANLODIPINO",'+;
'"preco_promocao":72.00,'+;
'"preco_regular":89.00,'+;
'"qtde_estoque":5,'+;
'"data_cadastro":"18/03/2016 17:45:22",'+;
'"data_atualizacao":"15/07/2016 10:42:02"}]'

oServer:=CreateObject( "MSXML2.ServerXMLHTTP")
oServer:Open( "POST", alltrim(::cUrl) , .f. )
oServer:setRequestHeader( "Content-Type", "application/json" )
oServer:setRequestHeader( "CharSet", "utf-8" )
oServer:send( cParm )
cRetorno := oServer:ResponseBody

Msginfo(cRetorno,'cRetorno')

return( aRetorno )
Wanderlei Cardoso
Analista / Programador
XHarbour + GtWvW + FiveWin + HwGui + Firebird
Skype: cwanderlei
cwanderlei@yahoo.com.br
(62)98171-3059 - whatsapp

Imagem
Avatar de usuário

Wanderlei
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 183
Data de registro: 25 Jan 2008 12:19
Cidade/Estado: Goiânia - GO
Curtiu: 13 vezes
Mens.Curtidas: 5 vezes

webservice com json

Mensagempor JoséQuintas » 29 Nov 2017 12:42

Não.
Mas se eu fosse fazer, com certeza iria começar por uma consulta que retorne formato json.
Com base no retorno, faria o envio.
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: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

webservice com json

Mensagempor asimoes » 29 Nov 2017 12:55

Tenta pelo meu exemplo:
cRetorno  := :responseBody
aResposta := {}
nLen := hb_jsondecode( cRetorno, @aResposta )
If ValType(aResposta) = "H"
   If Len(aResposta) != 0
      aRetorno := { aResposta["numCda"],;
                    aResposta["codErro"],;
                    aResposta["dataInscricao"] }   
   Endif
Endif
â–ºHarbour 3.x | Minigui xx-x | HwGuiâ—„
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

webservice com json

Mensagempor JoséQuintas » 29 Nov 2017 12:58

O problema dele é envio, e não retorno.
E ao que parece, ele tá inventando um novo formato pra json.
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: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

webservice com json

Mensagempor Wanderlei » 29 Nov 2017 13:25

Oi Zé, eu faço a consulta para saber que tipo de arquivo devo enviar, o problema mesmo é o envio o POST.

Consulta:
METHOD enviaConsulta() CLASS TFIGGY
********************************************************************************
Local oServer, cRetorno := ''

oServer:=CreateObject( "MSXML2.ServerXMLHTTP")
oServer:Open( "GET", ::cConsulta , .f. )
oServer:setRequestHeader("Content-Type", "application/json; charset=utf-8")
oServer:Send()
cRetorno:=alltrim(upper(oServer:ResponseText))

return( cRetorno )

METHOD New() CLASS TFIGGY
********************************************************************************
::cAcesso := 'bd6101cdc209a1b5'
::cURL := 'http://figgy.com.br/ws/datarey'
::cConsulta := 'http://www.figgy.com.br/getDataTypeTest?code=' + ::cAcesso
::aRetorno := Hash()

RETURN( SELF )
Wanderlei Cardoso
Analista / Programador
XHarbour + GtWvW + FiveWin + HwGui + Firebird
Skype: cwanderlei
cwanderlei@yahoo.com.br
(62)98171-3059 - whatsapp

Imagem
Avatar de usuário

Wanderlei
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 183
Data de registro: 25 Jan 2008 12:19
Cidade/Estado: Goiânia - GO
Curtiu: 13 vezes
Mens.Curtidas: 5 vezes

webservice com json

Mensagempor JoséQuintas » 29 Nov 2017 13:27

Olha aí que tem um exemplo de retorno em json.
Vai ser que seu envio está diferente.
https://viacep.com.br/
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: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

webservice com json

Mensagempor JoséQuintas » 29 Nov 2017 13:31

Talvez melhor mostrar:

json.png
json.png (1.49 KiB) Visualizado 1569 vezes


Algo está diferente.
E pode ter mais diferenças.
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: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

webservice com json

Mensagempor JoséQuintas » 29 Nov 2017 13:40

Aproveitando....

É o que falo sobre programação: aprender o básico e ficar forte no básico.
O resto vém depois.

Isso vale pra programação, pra BAT, pra XML, pra webservice, pra JSON, pra LIB gráfica.....
Pode não resolver os problemas, mas ajuda muuuito.
Porque no final... tudo acaba sendo feito a partir do básico....

E o que não existir no básico, a gente cria..... mesmo descobrindo depois que já existe pronto... rs

Então o básico de json é.... pegar um modelo pronto pra servir de exemplo.

json.png
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: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

webservice com json

Mensagempor MSDN » 29 Nov 2017 13:58

Quintas = programador RAIZ
MSDN
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 741
Data de registro: 28 Nov 2003 14:55
Cidade/Estado: CWB
Curtiu: 178 vezes
Mens.Curtidas: 123 vezes

webservice com json

Mensagempor asimoes » 30 Nov 2017 14:03

Para gerar o arquivo JSON
   hTable := { => }
   FOR I:=1 TO 5
      hRecord := { => }
      hb_HSet( hRecord, "CODIGO",     StrZero(i, 5) )
      hb_HSet( hRecord, "NOME",       "ALEXANDRE" )
      hb_HSet( hTable, hb_NtoS( I ), hRecord )
   NEXT
   hb_MemoWrit( "NEW.JSON", hb_jsonEncode( hTable, .T. ) )

Para ler:
hb_jsondecode( hb_MemoRead( "new.json" ), @hTable )
â–ºHarbour 3.x | Minigui xx-x | HwGuiâ—„
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes




Retornar para HwGui

Quem está online

Usuários vendo este fórum: Bing [Bot] e 6 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