如何在Python网络服务客户端中传递HashMap参数

2024-10-01 07:49:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个javaweb服务,它有一个以HashMap作为参数的web方法。现在我用python来调用这个服务。我将zeep库用于web服务客户机。我可以调用该函数,但是服务器没有接收我的HashMap数据。服务器说它是空的(不是空的,而是空的)

我尝试过在客户机中以多种方式构造HashMap,以使服务器能够识别数据。但它不起作用。你知道吗

client = Client('http://113.161.71.189/TestService/Service?wsdl', transport=transport)
signCloudMetaData = client.get_type('ns0:signCloudMetaData')()
entry = []
pageNo = ('PAGENO', 'Last')
positionIdentifider = ('POSITIONIDENTIFIER', 'test')
rectangleOffset = ('RECTANGLEOFFSET', '-30,-100')

entry.append(pageNo)
entry.append(positionIdentifider)
entry.append(rectangleOffset)

signCloudMetaData.singletonSigning = entry
client.service.request(signCloudMetaData)

对象有一种soap描述:

<xs:complexType name="signCloudMetaData">
    <xs:sequence>
        <xs:element name="singletonSigning">
            <xs:complexType>
                <xs:sequence>
                    <xs:element name="entry" minOccurs="0" maxOccurs="unbounded">
                        <xs:complexType>
                            <xs:sequence>
                                <xs:element name="key" minOccurs="0" type="xs:string"/>
                                <xs:element name="value" minOccurs="0" type="xs:string"/>
                            </xs:sequence>
                        </xs:complexType>
                    </xs:element>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
    </xs:sequence>
</xs:complexType>

Tags: name服务器clientweb客户机typeelementsequence
1条回答
网友
1楼 · 发布于 2024-10-01 07:49:31

最后,在同事的帮助下,我成功地打电话给了服务部门。我为像我这样有问题的人发布解决方案。你知道吗

Java HashMap分析为Json对象,如下所示:

{ "entry":[ { "key":"POSITIONIDENTIFIER", "value":"test" }, { "key":"PAGENO", "value":"Last" } ] }

在python中,必须使用Dict类型来构造这样的对象

position={}
position.update({"key":"POSITIONIDENTIFIER"})
position.update({"value":"test"})

pageNo={}
pageNo.update({"key":"PAGENO"})
pageNo.update({"value":"Last"})

Dict = {}
Dict['entry'] = []
Dict['entry'].append(position)
Dict['entry'].append(pageNo)

就这样。你知道吗

相关问题 更多 >