[pyar] Web service de tipo WCF
Federico Manuel Echeverri Choux
echeverrifm en gmail.com
Dom Ago 18 14:14:03 ART 2013
Se me olvido de ponerlo esto es todo lo que me da el pac
https://digitalinvoicecfdi.com.mx/WS_WSDI/DigitalInvoice.WebServices.WSDI.Timbrado.svc
Saludos
El 18 de agosto de 2013 12:10, Federico Manuel Echeverri Choux <
echeverrifm en gmail.com> escribió:
> 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
>
--
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/1ddf58a8/attachment-0001.html>
More information about the pyar
mailing list