Zeep с переменными пространства имен (?) - PullRequest
0 голосов
/ 20 декабря 2018

У меня есть API XML / WCF, против которого мне нужно что-то реализовать.Клиентская библиотека API предоставляется только как c # в Windows, и наша компания не делает ни c #, ни Windows.Сейчас я экспериментирую с Python и Zeep.API - это API системы контроля доступа Symmetry, если кому-то интересно.

Я могу подключиться к серверу и прочитать структуру wsdl.Это работает:

    URL='https://localhost/smsXMLWebService/SMSXMLWebService.svc?singleWsdl'
    URL2='https://localhost/smsXMLWebService/smsXMLWebService.svc'
    session = Session()
    session.verify = False
    transport = Transport(session=session)
    self.client = zeep.Client(URL, transport=transport)
    self.service = self.client.create_service('{http://tempuri.org/}WSHttpBinding_ISMSXMLWebService', URL2)

Теперь все с этого момента потребует входа на платформу.В примере кода c # это делается следующим образом:

G4TAPI = new SMSXMLWebServiceClient();
G4TAPI.ClientCredentials.UserName.UserName = txtUserName.Text
G4TAPI.ClientCredentials.UserName.Password = txtPassword.Text.ToLower();
G4TAPI.G4TLogin();

Мой self.service теперь имеет вызов G4TLogin (), и кажется, что он пытается подключиться, когда я провожу трафик трафика.Но как мне установить имя пользователя и пароль, поскольку они не указаны в качестве параметров для метода G4TLogin ()?

Это не работает:

self.service.ClientCredentials.UserName.UserName = "api"

Это очень не в моем удобствезона, и я могу использовать неправильную терминологию здесь.Есть идеи?

Сообщение об ошибке:

AttributeError: Service has no operation 'ClientCredentials'
...