【问题标题】:How to setup UTF-8 in Python SOAPpy如何在 Python SOAPpy 中设置 UTF-8
【发布时间】:2023-03-19 10:36:01
【问题描述】:

我尝试使用 SOAPpy 连接到网络服务。服务中的每个方法都使用用户名和密码进行身份验证。 Passwort 有一个特殊的德语字符(“ä”)。

当我执行以下脚本时:

#!/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")

我在终端中得到这个输出。

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)

如何设置/初始化 SOAPpy 以使用 UTF-8?

【问题讨论】:

  • 在这之后我遇到了第二个问题。我现在使用 suds 连接到 Microsoft Webservice:from suds.client import Client client = Client('example.com/xxx.asmx?wsdl') print client.service.HelloWorld("xxx", u"xxxäxxx")

标签: python python-2.7 soap utf-8 soappy


【解决方案1】:

你必须使用 unicode 字符串:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-25
    • 1970-01-01
    • 2019-04-12
    • 1970-01-01
    • 2020-09-29
    • 2017-01-02
    • 1970-01-01
    相关资源
    最近更新 更多