Python Web服务客户端UTF-8和特殊字符
与sud和pysimplesoap请求一样,当我尝试发送包含一些UTF-8特殊字符的请求时,答案是ascii编解码器无法解码字节。如果SoapUI没有这样的问题,WebService将返回正确的答案。代码如下:Python Web服务客户端UTF-8和特殊字符,python,web-services,utf-8,Python,Web Services,Utf 8,与sud和pysimplesoap请求一样,当我尝试发送包含一些UTF-8特殊字符的请求时,答案是ascii编解码器无法解码字节。如果SoapUI没有这样的问题,WebService将返回正确的答案。代码如下: def check_customer_via_reference(self, reference): wsdl_service = Client(http://localhost:81/localService/Service.svc?wsdl) xml = Raw(""
def check_customer_via_reference(self, reference):
wsdl_service = Client(http://localhost:81/localService/Service.svc?wsdl)
xml = Raw("""
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:wcf="http://localService">
<soapenv:Header/>
<soapenv:Body>
<wcf:GetCode>
<wcf:Par1>test</wcf:Par1>
<wcf:Code>ąęźżć</wcf:Code>
</wcf:GetCode>
</soapenv:Body>
</soapenv:Envelope>
""")
result = wsdl_service.service.GetCode(__inject={'msg': xml})
而SoapUI将返回
<a:Code>0</a:Code>
0
有什么想法吗?任何帮助都将不胜感激使用
unicode
字符串更改您的Raw
对象
xml = Raw(u"""
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:wcf="http://localService">
<soapenv:Header/>
<soapenv:Body>
<wcf:GetCode>
<wcf:Par1>test</wcf:Par1>
<wcf:Code>ąęźżć</wcf:Code>
</wcf:GetCode>
</soapenv:Body>
</soapenv:Envelope>
""")
xml=Raw(u”“”
测试
ąęźżć
""")
这没有我想象的那么有用。看起来这个问题的答案不是使用Raw,而是在不声明unicode字符串的情况下将其作为常规str传递。
xml = Raw(u"""
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:wcf="http://localService">
<soapenv:Header/>
<soapenv:Body>
<wcf:GetCode>
<wcf:Par1>test</wcf:Par1>
<wcf:Code>ąęźżć</wcf:Code>
</wcf:GetCode>
</soapenv:Body>
</soapenv:Envelope>
""")