Найти - Пользователи
Полная версия: soap with attachment
Начало » Python для экспертов » soap with attachment
1
AKS
Уважаемые форумчане!
Просьба помочь с кодом обращения к web сервису через Soap.
Есть описание сервиса-приложено к сообщению.
использую библиотеки zeep и zeep-adv для работы с SOAP и передачи вложенного файла.
Код вызова:
from zeep import client
from zeep import ns
from zeep.wsse.username import UsernameToken
from zeep import transport_with_attach as twa
import base64

with open('out.gz','rb')as f:
bytes = f.read()
encoded_data = base64.b64encode(bytes)

print (type(encoded_data))
#filename = ‘out.gz’
CLIENT = client.Client(“C:\\attach\projectPolicyCountService.xml”,
wsse=UsernameToken('login', ‘passowrd’, use_digest=True), transport=twa.TransportWithAttach())

#data = CLIENT.attach(filename)

r = CLIENT.service.getNumberFreeRequest()

print (type(r.attachments.content))
response_attach = r.attachments.content
my_file = open('resp_rsa.gz', ‘wb’)
my_file.write(response_attach)

Если в методе web сервиса не указываю параметр где по идее должен передать приаттачменный файл, то
сервис отвечает и указывает что attachment не передан, как только указываю параметр, начинает ругаться что “TypeError: a bytes-like object is required, not ‘str’”, хотя перед передачей параметра специально смотрю тип данных и он byte. вот строка на которой все ломается r = CLIENT.service.getNumberFreeRequest(encoded_data)
Как корректно передать файл в виде attachment на сервис?
DamMercul
Может в теги обрамишь? А то глаза режет
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB