我有以下suds
代码运行得很好:
from suds.client import Client
def bronto_data(self, page_num):
self.bApi = Client(self.BRONTO_WSDL)
session_id = self.bApi.service.login(self.TOKEN)
session_header = self.bApi.factory.create("sessionHeader")
filter_type = self.bApi.factory.create("filterType")
self.contact_filter = self.bApi.factory.create("contactFilter")
session_header.sessionId = session_id
self.bApi.set_options(soapheaders=session_header)
self.contact_filter.listId.append(contacts_list_id)
self.contact_filter.type = filter_type.AND
return self.bApi.service.readContacts(self.contact_filter, False, [], page_num)
由于不推荐使用suds,因此我想转换为zeep
。
我写了以下代码:
from zeep import Client, helpers
def bornto_data(self, page_num,):
self.bApi = Client(self.BRONTO_WSDL)
session_id = self.bApi.service.login(self.TOKEN)
session_header = self.bApi.type_factory("sessionHeader")
filter_type = self.bApi.type_factory("filterType")
self.contact_filter = self.bApi.type_factory("contactFilter")
session_header.sessionId = session_id
self.bApi.set_options(soapheaders=session_header)
self.contact_filter.listId.append(contacts_list_id)
self.contact_filter.type = filter_type.AND
return self.bApi.service.readContacts(self.contact_filter, False, [], page_num)
但是它给出了:
ValueError: No such prefix 'sessionHeader'
出什么问题了?