У меня есть 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'