Изменить привязку - PullRequest
       7

Изменить привязку

0 голосов
/ 21 января 2019

Я пытаюсь подключиться к конечной точке мыла, которая определяет 2 расположения службы, одно из которых недопустимо.Как я могу изменить привязку, чтобы использовать другой сервис.Я новичок в SOAP, и мне кажется, что документ говорит :

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') и получаю:

ValueError: Service not found

Также, если вы знаете какой-нибудь хороший документ, который я могу прочитать, я был бы рад, если вы порекомендуете его.

Обновление Я нашел правильный синтаксис

client.bind('PackageInq', 'BasicHttpsBinding_IPackageInq') 

, но при использовании

client.service.Method()

снова достигает недопустимой конечной точки

1 Ответ

0 голосов
/ 21 января 2019

Ну, после более внимательного прочтения документа 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)
...