python - 如何使用已经是 xml 格式的请求消息来提供泡沫

标签 python testing soap suds

我有一些 web 服务要测试,在 axis2 的服务器上运行。

我得到了一些 xml 数据,我们应该使用我们的网络服务从第三方接收这些数据。根据我们网络服务的 wsdl,该 xml 数据格式正确。

为了测试我做的:(遵循 suds 中给出的 axis2.py 测试文件)

url = 'http://localhost:8080/axis2/services/{0}?wsdl'.format('myWebService')
print 'url=%s' % url
client = Client(url)
print client
with open("input.xml") as f:
    inputXml = f.read()
print client.service.myWebserviceRequest(inputXml)

我收到以下错误消息:

urllib2.URLError: <urlopen error [Errno 10061] No connection could be made becau
se the target machine actively refused it>

就我在语句print Client 中看到的而言,suds 正在等待不是xml 形式的对象,而是python 形式的对象。 (这就是 axis.py 代码的其余部分所建议的)

但在我的例子中,我已经将数据格式化为 xml。你知道我如何将它作为 xml 直接输入到请求 client.service.myWebserviceRequest 中吗?

(这不是连接问题,因为我访问了 axis2 webservice getVersion)

EDIT1:打印客户端语句的输出。

Service ( myWebService ) tns="ws.myCompany.com"
   Prefixes (2)
      ns2 = "myData.ws.myCompany.com"
      ns3 = "ws.myCompany.com"
   Ports (1):
      (MyServiceSSOAP12port_http)
         Methods (1):
            sendMyInformation(ns2:DATA_HEADER DATA_HEADER, ns2:OTHER_CONTENT OTHER_CONTENT, )
         Types (1):
            WSExceptionType

让我感到困惑的是,suds 客户端公开了一个形式为 sendMyInformation((ns2:DATA_HEADER DATA_HEADER, ns2:OTHER_CONTENT OTHER_CONTENT,)

的服务

而在我的 wsdl 中,要提供的数据是:

<xs:element name="WHOLE_CONTENT">
    <xs:complexType>
        <xs:sequence>
            <xs:element ref="DATA_HEADER"/>
            <xs:element ref="OTHER_CONTENT"/>
        </xs:sequence>
    </xs:complexType>
</xs:element>

最佳答案

刚刚找答案的时候看到这个问题,

你解决了吗?你看起来像下面这样吗

消息注入(inject)(诊断/测试?)¶ 服务 API 提供消息/回复注入(inject)。

要注入(inject)要发送的 soap 消息或注入(inject)要处理的回复或错误,就好像由 soap 服务器返回一样,只需指定 __inject 关键字参数。

调用服务时。例如:

发送原始 SOAP 消息:

print client.service.test(__inject={'msg':message})
全科医生

关于python - 如何使用已经是 xml 格式的请求消息来提供泡沫,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10109877/

相关文章:

Python requests.get() : How to Print a Message if There is an Internet Connection Error?

python - 更改标题行的颜色

php - Laravel 测试 - 迁移/刷新错误的环境

unit-testing - 你真的在使用单元测试吗?

java - 在 Java 中使用 WSS4j 对 SOAP 消息进行签名

c# - 获取 "Could not create SSL/TLS secure channel"

python - 证书过期,无法使用 certify=True; requests.exceptions.SSLError 证书验证失败

python - json.dumps 值错误 : Extra data unable to dump json outputs

asp.net - session 固定 - 表单例份验证

c# - SOAP 的 WSDL - REST 怎么样?