2016-05-06 2 views
0

J'essaie d'utiliser SOAPpy pour me connecter à un webservice. Chacune des méthodes du service utilise un nom d'utilisateur et un mot de passe pour l'authentification. Le mot de passe a un caractère allemand spécial ("ä").Comment configurer UTF-8 en Python SOAPpy

Quand je suis excecuting le script suivant:

#!/usr/bin/env python 
# -*- coding: utf-8 -*- 

from SOAPpy import WSDL 
server = WSDL.Proxy('http://www.example.com/xxx.asmx?WSDL') 
server.HelloWorld("xxx","xxxäxxx") 

Je reçois cette sortie dans le Terminal.

Traceback (most recent call last): 
    File "./test.py", line 6, in <module> 
    server.HelloWorld("xxx","xxxäxxx") 
    File "/usr/lib/pymodules/python2.7/SOAPpy/Client.py", line 470, in __call__ 
    return self.__r_call(*args, **kw) 
    File "/usr/lib/pymodules/python2.7/SOAPpy/Client.py", line 492, in __r_call 
    self.__hd, self.__ma) 
    File "/usr/lib/pymodules/python2.7/SOAPpy/Client.py", line 354, in __call 
    config = self.config, noroot = self.noroot) 
    File "/usr/lib/pymodules/python2.7/SOAPpy/SOAPBuilder.py", line 636, in buildSOAP 
    return t.build() 
    File "/usr/lib/pymodules/python2.7/SOAPpy/SOAPBuilder.py", line 147, in build 
    self.dump(i, typed = typed, ns_map = ns_map) 
    File "/usr/lib/pymodules/python2.7/SOAPpy/SOAPBuilder.py", line 303, in dump 
    meth(obj, tag, typed, ns_map) 
    File "/usr/lib/pymodules/python2.7/SOAPpy/SOAPBuilder.py", line 376, in dump_string 
    typed, ns_map, self.genroot(ns_map), id)) 
    File "/usr/lib/pymodules/python2.7/SOAPpy/SOAPBuilder.py", line 339, in dumper 
    "id": id, "attrs": a} 
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 9: ordinal not in range(128) 

Comment puis-je configurer/init SOAPpy travailler avec UTF-8?

+0

Après cela, je runique dans un deuxième problème. J'utilise maintenant de la mousse pour me connecter au Webservice de Microsoft: from suds.client import Client client = Client ('http://www.example.com/xxx.asmx?wsdl') print client.service.HelloWorld ("xxx ", u" xxxäxxx ") – user2111880

Répondre

1

Vous devez utiliser des chaînes unicode:

server.HelloWorld("xxx", u"xxxäxxx")