PocketSoap

Fórum sobre ferramentas de apoio à programação (Clipper/[x]Harbour)

Moderador: Moderadores

anacatacombs
Membro Master
Membro Master
Mensagens: 472
Registrado em: 12 Jul 2005 16:53
Localização: Cianorte-Paraná
Contato:

PocketSoap

Mensagem por anacatacombs »

Bom dia queridos colegas.
Estou fazendo alguns testes como PocketSoap e estou bastante animada com os resultados.
Durante o desenvolvimento,encontrei um problema que me "travou".

Código: Selecionar todos

      oEnvelope := CreateObject( "PocketSOAP.Envelope.2" )
      oHttp      := CreateObject( "PocketSOAP.HTTPTransport.2" )
      oEnvelope:EncodingStyle = ""
      oEnvelope:SetMethod( "Registraversao","EndereçodoService" )
      oEnvelope:Parameters:Create( "CpfCnpj", cgc )
      oEnvelope:Parameters:Create( "Versao" , vTpSys+" "+"testeversao")
      oHttp:Send("EndereçodoService?wsdl",oEnvelope:Serialize() )
     oEnvelope:Parse(oHttp)  // aqui da o erro
Na linha do PARSE dá erro de Member not found.
Uso xHarbour 1.0.0, Windows 7 64.

Ao instalar o pocketSoap, eu registrei as DLL's.
O estranho, é que eu consigo comunicar corretamente com o webservice.
Nesse caso, eu sei que comunicou pq é um webservice interno, então fica mais fácil saber o que está acontecendo.
Alguém já passou por esse problema?
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

PocketSoap

Mensagem por alxsts »

Olá!

Não estaria faltando o SOAPAction? Algo do tipo

Código: Selecionar todos

oTttp:SOAPAction = "< URL >"
É apenas um palpite...
[]´s
Alexandre Santos (AlxSts)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

PocketSoap

Mensagem por JoséQuintas »

Outro palpite... imagino que o software não seja brasileiro...
Então.. "endereço", achei esquisito.

Curiosidade:
Qual seria a vantagem de usar esse PocketSoap?

É que o Windows já tem isso, por isso minha curiosidade.
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/
anacatacombs
Membro Master
Membro Master
Mensagens: 472
Registrado em: 12 Jul 2005 16:53
Localização: Cianorte-Paraná
Contato:

PocketSoap

Mensagem por anacatacombs »

José, eu estou usando pq não consegui criar o objeto utilizando o do windows.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

PocketSoap

Mensagem por JoséQuintas »

Seria isto?

Código: Selecionar todos

METHOD MicrosoftXmlSoapPost() CLASS Sefaz
   LOCAL oServer, nCont, aRetorno
   oServer := win_oleCreateObject( "MSXML2.ServerXMLHTTP")
   IF ::Certificado != NIL
      oServer:setOption( 3, "CURRENT_USER\MY\" + ::Certificado )
   ENDIF   
   oServer:Open("POST", ::UrlWS, .F.)
   oServer:SetRequestHeader("SOAPAction", ::SoapAction)
   oServer:SetRequestHeader("Content-Type", "application/soap+xml; charset=utf-8")
   oServer:Send(::XmlSoap)
   DO WHILE oServer:ReadyState <> 4
      MilliSec(500)
   ENDDO
   aRetorno := oServer:ResponseBody
   IF ValType(aRetorno) == "C"
      ::XmlRetorno := aRetorno
   ELSEIF aRetorno == NIL
      ::XmlRetorno := "*ERRO*"
   ELSE   
      ::XmlRetorno := ""
      FOR nCont = 1 TO Len(aRetorno)
         ::XmlRetorno += Chr(aRetorno[nCont])
      NEXT
   ENDIF   
    RETURN NIL
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/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

PocketSoap

Mensagem por JoséQuintas »

O envelope do SOAP, faço manualmente.
Pro projeto NFE e CTE uso assim:

Código: Selecionar todos

METHOD XmlSoapPost() CLASS Sefaz
   ::XmlSoap := ""
   ::XmlSoap += [<?xml version="1.0" encoding="UTF-8"?>]
   ::XmlSoap += [<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ] + ;
                [xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">]
   ::XmlSoap +=    [<soap12:Header>]
   ::XmlSoap +=       [<] + ::NfeCte + [CabecMsg xmlns="] + ::Servico + [">]
   ::XmlSoap +=          [<cUF>] + ::Uf + [</cUF>]
   ::XmlSoap +=          [<versaoDados>] + ::Versao + [</versaoDados>]
   ::XmlSoap +=       [</] + ::NfeCte + [CabecMsg>]
   ::XmlSoap +=    [</soap12:Header>]
   ::XmlSoap +=    [<soap12:Body>]
   ::XmlSoap +=       [<] + ::NfeCte + [DadosMsg xmlns="] + ::Servico + [">]
   ::XmlSoap += ::XmlDados
   ::XmlSoap +=    [</] + ::NfeCte + [DadosMsg>]
   ::XmlSoap +=    [</soap12:Body>]
   ::XmlSoap += [</soap12:Envelope>]
   ::MicrosoftXmlSoapPost()
   RETURN NIL
O projeto hbnfe também poderia servir de referência. Tem aqui no fórum.
Pode usar Microsoft Soap ou libcurl.
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/
anacatacombs
Membro Master
Membro Master
Mensagens: 472
Registrado em: 12 Jul 2005 16:53
Localização: Cianorte-Paraná
Contato:

PocketSoap

Mensagem por anacatacombs »

José, e Alex:
Obrigada pela atenção e pelas contribuições, tenho certeza que será muito util.
Consegui resolver o problema. Achei na internet uma versão pra window 7 e ficou tudo 100%.
Mais uma vez, obrigada.
:)
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

PocketSoap

Mensagem por rochinha »

Amiguinhos,

sempre que possivel mantenham atualizados o MSXML ou tenham as versões 4, 5 e 6 instaladas para evitar erros de parse
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
anacatacombs
Membro Master
Membro Master
Mensagens: 472
Registrado em: 12 Jul 2005 16:53
Localização: Cianorte-Paraná
Contato:

PocketSoap

Mensagem por anacatacombs »

Obrigada pela dica, Rochinha
Responder