Página 1 de 2

Enviar y Recibir respuesta de webservices con NetTalk

Publicado: Vie Mar 04, 2011 6:12 pm
por Sofia (Mexico)
Hola Amigos clarioneros,

Ya compre NetTalk 5, para resolver mi problema de conexion con webservices, y ya estuve revisando los ejemplos, al parecer esta muy claro, sin embargo sigo sin lograr recibir la respuesta del web services, ya logro postear, pero como recibo la respuesta, me podrian orientar por favor, aqui dejo el codigo que estoy utilizando para postear, si hay algun error orientenme!!


!Inicia codigo para envio

TimbreFiscal.SetAllHeadersDefault()
TimbreFiscal.HeaderOnly = 0
TimbreFiscal.Cookie = ''
TimbreFiscal.Referer = ''
TimbreFiscal.ContentType = 'text/xml; charset=utf-8'
TimbreFiscal.AcceptEncoding = ''
TimbreFiscal.Pragma_ = 'no-cache'

!TimbreFiscal.SSLCertificateOptions.CertificateFile = CertificateFile
!TimbreFiscal.SSLCertificateOptions.PrivateKeyFile = PrivateKeyFile
!TimbreFiscal.SSLCertificateOptions.DontVerifyRemoteCertificateWithCARoot = DontVerifyRemoteCertificateWithCARoot
!TimbreFiscal.SSLCertificateOptions.DontVerifyRemoteCertificateCommonName = DontVerifyRemoteCertificateCommonName
TimbreFiscal.SSLCertificateOptions.CARootFile = LOC:ArchivoPem


TimbreFiscal.Post(CLIP(LOC:WebServer),LOC:ArchivoXML)
if TimbreFiscal.Error
Message('This WebSite could not be posted to. Error ' & TimbreFiscal.Error |
& ': ' & TimbreFiscal.InterpretError())
SetCursor()
end

:?:

Re: Enviar y Recibir respuesta de webservices con NetTalk

Publicado: Sab Mar 05, 2011 5:48 pm
por Carlos Relva
Hola Sofia:
Yo lo armé con Nettalk 4 (no creo que en eso haya muchas diferencias con el 5.0) en base al ejemplo de SOAP ConverClientUsingXfiles.
El código tenés que repartirlo en los distintos embed que te genera el template:
1) una window a la que agregas el template nettalk (Netsimpleobject) y el de xfiles si lo tenés tambien.
2) En el xfile usas 2 embed: load y save tweaksettings
3) en el nettalk usas PageReceived y Errortrap
Está todo en el ejemplo.
Luego ejecutas el POST con un botón o algo similar y allí va el código que vos pusiste en la consulta.
La respuesta está en el embed page received:

Código: Seleccionar todo

  ! In nettalk this method is called when the answer is received from the SOAP server.
   ! The answer is in NetTalk's .page property.
   ! Here we use the xFiles LOAD method to parse the incoming answer and store the result in
   ! the ResultGroup group.
   if Self.PageLen > 0
     PacketReceived = self.Page
     xml.load(resultGroup,self.page,len(clip(self.page)))
     display()
   End
   SetCursor()

Re: Enviar y Recibir respuesta de webservices con NetTalk

Publicado: Sab Mar 05, 2011 5:53 pm
por Carlos Relva
Hola:
me faltó algo. Bajé el Fiddler2 y lo instalé. Lo arrancas antes de postear y te permite ver lo que estás enviando y la respuesta del servidor. Debe haber otros programas similares en función.
Saludos.

Carlos Relva
Salto (B)
R.A.

Re: Enviar y Recibir respuesta de webservices con NetTalk

Publicado: Sab Mar 05, 2011 11:29 pm
por Manuel
Sofía,

Como te dice Carlos, es importante ver el string que enviás y recibís.
Otra cosa importante, por lo menos en los que yo utilicé, es el uso preciso de mayúsculas y minúsculas de acuerdo a los requerimientos del servicio.

Saludos,
Manuel Allo
Buenos Aires
Argentina

Re: Enviar y Recibir respuesta de webservices con NetTalk

Publicado: Mar Mar 08, 2011 10:07 pm
por Sofia (Mexico)
me faltó algo. Bajé el Fiddler2 y lo instalé. Lo arrancas antes de postear y te permite ver lo que estás enviando y la respuesta del servidor. Debe haber otros programas similares en función.
Saludos.

---------------------------------------------------------------------------------------------

Carlos ya baje el Fiddler2, pero cuando posteo desde mi aplicacion, no me regustra nada :( tengo que hacer algo en especial para que lo haga??


muchas gracias Saludos!!!

Re: Enviar y Recibir respuesta de webservices con NetTalk

Publicado: Mié Mar 09, 2011 2:10 am
por Carlos Relva
Hola Sofía,
Nada más que instalarlo. Al iniciarlo, antes de probar tu programa, abre una ventana donde a la izquierda se ve lo que estás enviando. La minimizas y probas el programa. En la ventana del Fiddler2 aparece lo que enviaste en el post y la respuesta si la hubo. ElFiddler2 tiene que estas funcionando todo el tiempo en que quieras ver lo que envias al servidor o recibis de él.
Si no parece funcionar, podrías probar primero corriendo el programa de prueba de SOAP de Nettalk5 (o cualquier otra cosa que envie y reciba datos) y podes ver como funciona el Fiddler2. Despues que le agarraste la mano haces lo mismo con tu programa.
Saludos

Re: Enviar y Recibir respuesta de webservices con NetTalk

Publicado: Vie Mar 11, 2011 9:33 pm
por Sofia (Mexico)
Hola Carlos, sabes hice prueba con el fiddler para postear a la pagina que deseo, y me regresa esto:

HTTP/1.1 302 Found
Date: Fri, 11 Mar 2011 14:25:19 GMT
Server: Apache/2.2.4 (Win32) mod_ssl/2.2.4 OpenSSL/0.9.8e mod_jk/1.2.26
Location: https://demotf.buzonfiscal.com/timbrado/
Content-Length: 224
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=iso-8859-1

segun yo entiendo, la pagina o la direccion se movio de lugar, corrigeme si estoy mal??

o que puede ser, que me manda este error??

Re: Enviar y Recibir respuesta de webservices con NetTalk

Publicado: Vie Mar 11, 2011 10:43 pm
por Carlos Relva
Hola,
Hice correr el ejemplo de nettalk 4 (imagen 1) y lo que muestra Fiddler (imagen 2).
La linea 6 es la que corresponde a las imágenes. Creo que las muestra invertidas en orden.
Las lineas 4 y 5 son 2 consultas con error ( en rojo).
No me coincide para nada con lo que vos transcribis. Desgraciadamente recien me estoy iniciando en esto así que no puedo aportar mucho.
Pregunta 1: tenes el archivo WSDL con la definicion de las funciones. Allí tambien tiene que estar la direccion donde postear. Algo equivalente?. Creo que debería estar en una pagina/*.wsdl o *.wsml
En mi caso comence con un .doc con algunas indicaciones, el archivo wsdl que tiene cabecera:

Código: Seleccionar todo

       <?xml version='1.0' encoding='UTF-8' ?>
       <!-- Generated 11/04/10 by Microsoft SOAP Toolkit WSDL File Generator, Version 3.00.1325.0 --> 
       <definitions
	name='FABAWSAOLV2'
	targetNamespace='http://tempuri.org/FABAWSAOLV2/wsdl/'
              ...

Las funciones:

Código: Seleccionar todo

	
             <message name='ClsAolV2.ValidarOrden'>
		<part name='idUsuario' type='xsd:int'/>
		<part name='password' type='xsd:int'/>
		<part name='idmutual' type='xsd:int'/>
                          ...
Y los datos de la pagina al final

Código: Seleccionar todo

	
             <service name='FABAWSAOLV2' >
		<port name='ClsAolV2SoapPort' binding='wsdlns:ClsAolV2SoapBinding' >
			<soap:address location='http://www.faba.org.ar/fabawsaolv2/FABAWSAOLV2.ASP'/>
		</port>
	</service>

Tambien tenia un archivo WSML con las funciones una por una y los datos correspondientes a los parámetros

Código: Seleccionar todo

     <operation name='ValidarOrden'>
        <execute uses='ClsAolV2Object' method='ValidarOrden' dispID='1610809344'>
          <parameter callIndex='-1' name='retval' elementName='Result' />
          <parameter callIndex='1' name='idUsuario' elementName='idUsuario' />
          ...
Es la primera vez que adjunto algo en este grupo. No se como se verá.
Pasame algun dato más para ver si puedo ayudarte. Si no necesitarás alguien con mas conocimientos.
Saludos

Re: Enviar y Recibir respuesta de webservices con NetTalk

Publicado: Mié Feb 08, 2012 8:06 pm
por LuisIrala
Carlos Selva,

Resulta que un cliente me solicita hacer una Interface con un nuevo sistema que estan adquiriendo mediante un webservice, para esto el cliente me entrego un archivo .wsdl donde tengo la definicion del ws, estoy haciendo un programa para generar el XML usando el Xfiles y usar el Nettalk para enviar la peticion HTTP.

Estuve mirando un video de la pagina de clarionlive.com que trata justo este tema. El ws no es publico por lo que no puedo probarlo directamente, no habra alguna forma de probarlo localmente en mi pc de desarrollo?

Estoy usando Clarion 5.5 sobre windows XP.

Agradeceria cualquier ayuda que me pueda dar.

Saludos
Luis Irala

Re: Enviar y Recibir respuesta de webservices con NetTalk

Publicado: Mié Feb 08, 2012 11:11 pm
por Carlos Relva
Hola,
no se me ocurre como. Necesitas enviar los datos al servidor del WS y ver si te los acepta y como te responde.
En mi caso, y no se si siempre es así, el Ws tenía una direccion especial para pruebas donde podias ajustar el
comportamiento.
Saludos