我使用Python suds来使用SOAP服务,这些调用背后的逻辑是用Java编写的。似乎其中一个参数需要传递DataHandler对象。有没有办法可以在Python中创建一个DataHandler Java对象(即使用库),或者在Python中是否有相当于DataHandler的类?
一些背景知识:
在我一直在使用的WSDL中,定义输入状态类型的特定行:
<xs:element name="filedata" xmime:expectedContentTypes="application/octet-stream" type="xs:base64Binary" minOccurs="0"/>
我认为我需要做的就是遵循这个要求,所以我尝试创建一个像这样的二进制base64对象:
openedfile = open(sourcepath, 'r')
fileData = base64.b64encode(openedfile.read())
但是当我通过suds调用该方法时,我收到此错误:
suds.WebFault: Server raised fault: 'javax.activation.DataHandler cannot be cast to org.jvnet.staxex.StreamingDataHandler'
因为我的输入不是DataHandler(特别是StreamingDataHandler)对象。