我试图连接到一个soap端点,它定义了2个服务位置,其中一个无效。如何更改绑定以使用其他服务。我刚接触过SOAP和他说医生zeep
from zeep import Client
from zeep import xsd
client = Client('http://my-endpoint.com/production.svc?wsdl')
service2 = client.bind('SecondService', 'Port12')
service2.someOperation(myArg=1)但它并没有提到什么是争论。
我的服务被定义为:
<wsdl:service name="PackageInq">
<wsdl:port name="BasicHttpBinding_IPackageInq" binding="tns:BasicHttpBinding_IPackageInq">
<soap:address location="http://invalid.local:8989/TopUp/PackageInq.svc"/>
</wsdl:port>
<wsdl:port name="BasicHttpsBinding_IPackageInq" binding="tns:BasicHttpsBinding_IPackageInq">
<soap:address location="https://valid.com/TopUp/PackageInq.svc"/>
</wsdl:port>
</wsdl:service>我尝试过类似的东西-- client.bind('BasicHttpsBinding_IPackageInq')和and:
ValueError: Service not found此外,如果你知道任何好的文件,我能读,如果你推荐它,我会很高兴。
更新我找到了正确的语法
client.bind('PackageInq', 'BasicHttpsBinding_IPackageInq') 但在使用的时候
client.service.Method()再次命中无效端点。
发布于 2019-01-21 09:48:07
在更仔细地阅读文档之后,client.bind返回一个service,您应该使用它,而不是客户机。
所以应该是喜欢
from zeep import Client
from zeep import xsd
client = Client('http://my-endpoint.com/production.svc?wsdl')
service2 = client.bind('SecondService', 'Port12')
service2.someOperation(myArg=1)发布于 2021-06-21 16:10:47
zeep版本4.0.0。
<wsdl:service name="RiskAnalysis">
<wsp:PolicyReference xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" URI="#BasicPolicy"/>
<wsdl:port name="RiskAnalysisHttpsSoap11Endpoint" binding="tns:RiskAnalysisSoap11Binding">
<soap:address location="https://addreshere/"/>
</wsdl:port>
<wsdl:port name="RiskAnalysisHttpsSoap12Endpoint" binding="tns:RiskAnalysisSoap12Binding">
<soap12:address location="https://addreshere/"/>
</wsdl:port>
</wsdl:service>
from zeep import Client
requestPayload = {'Attachment': inputQuery.encode() }
soapClient = Client('http://my-endpoint.com/production?wsdl', service_name=RiskAnalysis, port_name=RiskAnalysisHttpsSoap12Endpoint )
soapClient.client.service.OPERATIONS(**requestPayload)https://stackoverflow.com/questions/54286042
复制相似问题