在进行SOAP(Simple Object Access Protocol)通信时,确定有效的SOAPAction非常重要。SOAPAction是一个HTTP标头,用于指示SOAP消息的目的和操作。以下是确定有效SOAPAction的几个步骤:
<portType>
元素中定义。每个操作都有一个唯一的名称,并在<operation>
元素中指定。<binding>
元素中定义。绑定引用了一个协议(如HTTP)和一个SOAP版本。<soap:operation>
元素,它包含一个soapAction
属性。这个属性值就是您需要的有效SOAPAction。例如,假设您有以下WSDL文件:
<portType name="MyServicePortType">
<operation name="MyOperation">
...
</operation>
</portType>
<binding name="MyServiceBinding" type="tns:MyServicePortType">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="MyOperation">
<soap:operation soapAction="http://example.com/MyOperation" style="document"/>
...
</operation>
</binding>
...
</definitions>
在这个例子中,有效的SOAPAction是http://example.com/MyOperation
。
requests
库时,可以这样设置:import requests
url = "http://example.com/MyService"
action = "http://example.com/MyOperation"
headers = {"Content-Type": "text/xml", "SOAPAction": f'"{action}"'}
response = requests.post(url, data=soap_request_body, headers=headers)
通过遵循这些步骤,您可以确定有效的SOAPAction,从而确保您的SOAP请求成功。
领取专属 10元无门槛券
手把手带您无忧上云