Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 23, 2019 16:09:13

AKS
Зарегистрирован: 2019-01-23
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

soap with attachment

Уважаемые форумчане!
Просьба помочь с кодом обращения к 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 на сервис?

Прикреплённый файлы:
attachment count-eosago-soapui-project.xml (7,3 KБ)

Офлайн

#2 Апрель 28, 2019 16:03:06

DamMercul
Зарегистрирован: 2017-11-26
Сообщения: 323
Репутация: +  13  -
Профиль   Отправить e-mail  

soap with attachment

Может в теги обрамишь? А то глаза режет



____________________________________________________

 # Life loop
while alive:
    if (fun > boredom) and money:
        pass_day(fun, boredom, money)
        continue
    else: break

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version