[pyar] Web service de tipo WCF

Federico Manuel Echeverri Choux echeverrifm en gmail.com
Dom Ago 18 14:10:37 ART 2013


Hola!!! Mariano hice lo que me dices

>>> from pysimplesoap.client import SoapClient, SoapFault
>>> url = '
https://digitalinvoicecfdi.com.mx/WS_WSDI/DigitalInvoice.WebServices.WSDI.Timbrado.svc?wsdl
'
>>> client = SoapClient(url, ns="s")

hasta ahi todo bien,

pero pruebo con:

>>> client.help('TimbrarTest')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "pysimplesoap/client.py", line 214, in help
    operation = self.get_operation(method)
  File "pysimplesoap/client.py", line 166, in get_operation
    for service_name, service in self.services.items():
AttributeError: 'NoneType' object has no attribute 'items'

y esto es todo lo que me dio el PAC

Hice mal el help??

Saludos


El 18 de agosto de 2013 10:12, Mariano Reingart <reingart en gmail.com>escribió:

> Federico:
>
> Para consumir (usar) un webservice con pysimplesoap sería similar a
> suds , debes crear el cliente y llamar a los métodos.
> No hace falta crear clases ni nada complejo, las estructuras de datos
> se manejan con tipos simples de python, por lo que no deberías tener
> algunos de los problemas de suds y otras librerías similares.
>
> Usando el ejemplo que dieron en otro email (tendrías que cambiar el
> wsdl para tu caso):
>
> >>> from pysimplesoap.client import SoapClient
> >>>
> >>> WSDL = "http://pruebas.ecodex.com.mx:2044/ServicioSeguridad.svc?wsdl"
> >>> client = SoapClient(wsdl=WSDL, ns="s")
>
> Luego podes inspeccionar client.services para ver que servicios y
> métodos expone:
>
> {'Seguridad': {'documentation': '',
>   'ports': {'PuertoSeguridad': {
>       'location': 'http://pruebas.ecodex.com.mx:2044/ServicioSeguridad.svc
> ',
>       'name': 'PuertoSeguridad',
>       'operations': {'ObtenerToken': {
>           'action': '
> http://Ecodex.WS.Model/2011/CFDI/Seguridad/ObtenerToken',
>           'documentation': '',
>           'header': None,
>           'input': {'SolicitudObtenerToken': {
>                         'RFC': str,
>                         'TransaccionID': long}},
>           'name': 'ObtenerToken',
>           'output': {'RespuestaObtenerToken': {
>                         'Token': str,
>                         'TransaccionID': long}},
>           'parts': {'input_body': None,
>             'input_header': None,
>             'output_body': None,
>             'output_header': None}}},
>       'port_type_name': 'Seguridad',
>       'service_name': 'Seguridad',
>       'soap_uri': 'http://schemas.xmlsoap.org/wsdl/soap/',
>       'soap_ver': 'soap11',
>       'transport': 'http://schemas.xmlsoap.org/soap/http'},
>     'PuertoSeguridadSeguro': {
>         'location': '
> https://pruebas.ecodex.com.mx:2045/ServicioSeguridad.svc',
>         'name': 'PuertoSeguridadSeguro',
>         'operations': {'ObtenerToken': {
>             'action': '
> http://Ecodex.WS.Model/2011/CFDI/Seguridad/ObtenerToken',
>             'documentation': '',
>             'header': None,
>             'input': {'SolicitudObtenerToken': {
>                           'RFC': str,
>                           'TransaccionID': long}},
>             'name': 'ObtenerToken',
>             'output': {'RespuestaObtenerToken': {
>                           'Token': str,
>                           'TransaccionID': long}},
>             'parts': {'input_body': None,
>             'input_header': None,
>             'output_body': None,
>             'output_header': None}}},
>         'port_type_name': 'Seguridad',
>         'service_name': 'Seguridad',
>         'soap_uri': 'http://schemas.xmlsoap.org/wsdl/soap/',
>         'soap_ver': 'soap11',
>         'transport': 'http://schemas.xmlsoap.org/soap/http'}}}}
>
>
> En 'operations' podes ver que tiene una operación ObtenerToken, podes
> ver la firma con client.help:
>
> >>> print client.help('ObtenerToken')
>
> ObtenerToken(RFC=<type 'str'>, TransaccionID=<type 'long'>)
>  -> {u'Token': <type 'str'>, u'TransaccionID': <type 'long'>}:
>
> Ahi te dice cuales son los parámetros, simplemente donde dice type str
> o long tenes que reemplazar por el valor.
> Te indica que devuelve un diccionario con dos claves Token y TransaccionID.
>
> Para llamar al método remoto sería:
>
> >>> retval = client.ObtenerToken(RFC="Saraza", TransaccionID=1234)
> >>> print retval['Token']
> >>> print retval['TransaccionID']
>
> Te adjunto un ejemplo completo con lo que envió Mauricio.
>
> Cualquier cosa avisame y lo vemos,
>
> Sds
>
> Mariano Reingart
> http://www.sistemasagiles.com.ar
> http://reingart.blogspot.com
>
>
> 2013/8/18 Federico Manuel Echeverri Choux <echeverrifm en gmail.com>:
> > Hola!!!! gente, probe los que me dijeron el tuyo angel lo probe con dos
> > webservice, uno me funciono y el otro me da error
> > Esto Use:
> >
> > from suds.client import Client
> > url = 'http://localhost:7080/webservices/WebServiceTestBean?wsdl'
> > client = Client(url)
> >
> >
> >
> > el que te comente que me da error me devuelve esto:
> >
> >
> >   File "/usr/lib/python2.7/dist-packages/suds/wsdl.py", line 177, in
> > add_children
> >     child = Factory.create(c, self)
> >   File "/usr/lib/python2.7/dist-packages/suds/wsdl.py", line 920, in
> create
> >     return fn(root, definitions)
> >   File "/usr/lib/python2.7/dist-packages/suds/wsdl.py", line 432, in
> > __init__
> >     NamedObject.__init__(self, root, definitions)
> >   File "/usr/lib/python2.7/dist-packages/suds/wsdl.py", line 90, in
> __init__
> >     WObject.__init__(self, root, definitions)
> >   File "/usr/lib/python2.7/dist-packages/suds/wsdl.py", line 58, in
> __init__
> >     Object.__init__(self)
> >   File "/usr/lib/python2.7/dist-packages/suds/sudsobject.py", line 132,
> in
> > __init__
> >     self.__metadata__ = Metadata()
> > RuntimeError: maximum recursion depth exceeded
> >
> >
> > Lo tuyo Mariano aun no lo entiendi muy bien, ahora me dedico a eso a ver
> que
> > me sale.
> >
> > Que tan grave es que publique el link??
> >
> > es este: ( Modificado )
> >
> > https://webservice.com/WS_WSDI/WebServices.WSDI.Timbrado.svc?wsdl
> >
> > Saludos y Gracias
> >
> >
> >
> >
> >
> > El 15 de agosto de 2013 18:35, Angel Java Lopez <ajlopez2000 en gmail.com>
> > escribió:
> >>
> >> Hola gente!
> >>
> >>
> >> Federico, apenas si programo en Python, apenas lo conozco. Pero
> cualquiera
> >> que vaya a consumir WCF trata de sacar todo de lo que el WSDL (Web
> Service
> >> Description Language). Fijate que aca dice en general como obtenerlo:
> >>
> >>
> >>
> http://www.warden.pl/2013/02/21/consuming-wsdl-web-services-with-perl-or-python/
> >>
> >> Y ahi usa una libreria suds
> >> https://fedorahosted.org/suds/
> >>
> >> que dado el WSDL, te deja ya armado el metodo de invocacion, con monio
> >> parece ;-)
> >>
> >> Te funciono?
> >>
> >> Nos leemos!
> >>
> >> Angel "Java" Lopez
> >> @ajlopez
> >>
> >>
> >>
> >> 2013/8/15 Federico Manuel Echeverri Choux <echeverrifm en gmail.com>
> >>>
> >>> Hola!!!! gente, alguien hizo algo con webservice WCF?? alguna doc que
> me
> >>> puedan pasar para ver si puedo hacer esto.
> >>>
> >>> Muchisimas gracias de antemano
> >>>
> >>>
> >>> --
> >>> Federico Manuel Echeverri Choux
> >>> Vauxoo - OpenERP's Gold Partner
> >>> mobile: (+521) 444-1-400683
> >>> Tel: (+52) 444-8185539
> >>> skype: echeverrifm
> >>> web: http://www.vauxoo.com
> >>> twitter: @echeverrifm
> >>>            @vauxoo
> >>>
> >>> _______________________________________________
> >>> pyar mailing list pyar en python.org.ar
> >>> http://listas.python.org.ar/listinfo/pyar
> >>>
> >>> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
> >>>
> >>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> >>> Argentina - http://www.usla.org.ar
> >>
> >>
> >>
> >> _______________________________________________
> >> pyar mailing list pyar en python.org.ar
> >> http://listas.python.org.ar/listinfo/pyar
> >>
> >> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
> >>
> >> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> >> Argentina - http://www.usla.org.ar
> >
> >
> >
> >
> > --
> > Federico Manuel Echeverri Choux
> > Vauxoo - OpenERP's Gold Partner
> > mobile: (+521) 444-1-400683
> > Tel: (+52) 444-8185539
> > skype: echeverrifm
> > web: http://www.vauxoo.com
> > twitter: @echeverrifm
> >            @vauxoo
> >
> > _______________________________________________
> > pyar mailing list pyar en python.org.ar
> > http://listas.python.org.ar/listinfo/pyar
> >
> > PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
> >
> > La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> > Argentina - http://www.usla.org.ar
>
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
>



-- 
Federico Manuel Echeverri Choux
Vauxoo - OpenERP's Gold Partner
mobile: (+521) 444-1-400683
Tel: (+52) 444-8185539
skype: echeverrifm
web: http://www.vauxoo.com
twitter: @echeverrifm
           @vauxoo
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20130818/aac86252/attachment-0001.html>


More information about the pyar mailing list