Здесь новичок на Python, и спасибо, что нашли время помочь.
Я отправляю SOAP-запрос на скачивание некоторых записей mp4 с сервера, используя zeep.Сервер отвечает, отправляя следующие вложения MessagePack.Как мне распаковать это и конвертировать в mp4.Вложение из нескольких частей содержит как описание файла, так и самого файла MP4.Спасибо
<MessagePack(attachments=[<Attachment('<6X3ER09X000X401BEFX91B4FFBD48906>', 'application/octet-stream')>, <Attachment('<0XECXX28CX0RS9DD28BYYA9F2CBA177D>', 'application/octet-stream')>])>
Вот код, который я пытаюсь использовать
def get_record(client, siteid, username, passwd, ticket):
return client.downloadNBRStorageFile(**{'siteId': 'xxxxx', 'recordId': xxxxx, 'ticket':ticket})
def main():
client = Client(wsdl=wsdl)
service = client.create_service(BINDING_NAME, ADDRESS)
resp = update_phone_by_name(service, siteid, username, password, ticket)
pack = client.service.downloadNBRStorageFile
recording = pack.root
description = pack.attachments[0].content
rec_file = pack.attachments[1].content
Когда я запускаю это, я получаю эту ошибку "recording = pack.root AttributeError: объект 'OperationProxy' не имеетатрибут 'root' "
Я пытаюсь сделать то же самое, что и в этом посте, но не могу понять, как загрузить вложения
Python SOAP WSDL работает в SOAPpy, но не в ZSI илиzeep
---- Редактировать ----- Обновить ----- Я обновил код, как показано ниже:
def get_ticket(client):
global rec_ticket
global ticket
rec_ticket = client.getStorageAccessTicket(**{'siteId': siteid, 'username': username, 'password': password})
return rec_ticket
def get_record(client):
return client.downloadNBRStorageFile(**{'siteId': 'xxxxx', 'recordId':
recordid, 'ticket': rec_ticket})
def main():
client = Client(wsdl=wsdl)
axl = client.create_service(BINDING_NAME, ADDRESS)
resp_ticket = get_ticket(axl)
resp_rec = get_record(axl)
pack = client.service.downloadNBRStorageFile(siteid, recordID, rec_ticket)
record_details = pack.root
record_file = pack.attachments[1].content
Однако я получаю ответ ниже: "поднять ConnectionError (e, request = request) request.exceptions.ConnectionError: HTTPConnectionPool (host = '10 .224.91.216 ', port = 2001): Maxповторные попытки превышены с помощью url: / nbr / services / NBRStorageService (вызвано NewConnectionError (': не удалось установить новое соединение: [WinError 10060] Попытка подключения не удалась, поскольку подключенная сторона не ответила должным образом через некоторое время или установило соединение)не удалось, потому что соединениехост ted не смог ответить ')) "