【发布时间】:2015-06-24 00:10:57
【问题描述】:
我正在与 SOAP API 交互,其中特定方法需要原始 XML 字符串作为参数。像这样:
import suds.client as sudscl
client = sudscl.Client('http://host/ws.wsdl', location='http://host/ws')
session = 'test123'
options = '<rawXML><Item>Foobar</Item></rawXML>'
result = client.service.ExecuteSearch(session, options)
相当直接。但是,suds 对我刚刚发送的 XML 字符串进行 HTML 编码,如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:ns0="http://host/ws">
<SOAP-ENV:Header/>
<ns1:Body>
<ns0:ExecuteSearch>
<ns0:session>test123</ns0:session>
<ns0:options>
<rawXML&rt;<Item&rt;Foobar</Item&rt;</rawXML&rt;
</ns0:options>
</ns0:ExecuteSearch>
</ns1:Body>
</SOAP-ENV:Envelope>
嘘!有什么方法可以让 suds 原封不动地传入 XML 字符串?
谢谢!
【问题讨论】:
-
this other answer 有帮助吗?
-
@summea - 不幸的是,没有。 1. 这将需要我构建然后传入整个 SOAP 消息,而实际上我只想传入 一个参数 未修改(而不是从头开始构建整个 XML 消息)。 2. _inject 对我不管用(_TypeError: ExecuteSearch() got an unexpected keyword argument '__inject')。