#python-3.x #soap #zeep
#python-3.x #soap #zeep
Вопрос:
Извините, если этот вопрос уже задан. Я пытаюсь отправить некоторый параметр как dict, но я получаю результаты как none или not note found . в параметре я отправляю nodeName(GOAFB) и хочу изменить его NodeDetails, как указано в параметре. И это имя узла доступно по адресу, проверьте с помощью метода get (показано на снимке). Ниже приведен код, который я пробовал
from zeep import Client
from zeep.transports import Transport
from requests import Session
from requests.auth import HTTPBasicAuth
from zeep.wsse.username import UsernameToken
import json
wsdl = "http://10.2.1.8/ws/17.0/Bhaul.asmx?wsdl"
session = Session()
client = Client(wsdl, transport=Transport(session=session),wsse=UsernameToken('admin','password'))
param = {
"Ib440ConfigSet": {
"NodeName": "GOAFB",
"NodeDetail": {
"Custom": [
{
"Name": "Circle",
"Value": "KOLKATA"
},
{
"Name": "SGW",
"Value": "1010"
}
]
}
}
}
dd=client.service.Ib440ConfigGet("GOAFB")
client.service.Ib440ConfigSet(*param)
Приведенный ниже снимок содержит результаты:
Пожалуйста, поддержите, как заставить его работать
Ответ №1:
Для того чтобы отправить dict
сообщение, нам нужно назначить double *
, так что это должно сработать для вас:
client.service.Ib440ConfigSet(**param)