Я использую веб-сервис SOAP с suds (0.4) . WSDL , который я использую, выдает ошибку
>>> import uuid
>>> from suds.client import Client
>>> wsdl = 'https://toolkit.dnb.com/locked/resource/docs/TransactionAndMessageDefinition/ProductList.wsdl'
>>> client = Client(wsdl)
Сервис, который я использую, ожидает один параметр productListRequest
, который является сложным типом, в который вы помещаете UserId
, Password
и сложный тип ProductListInput
.
Я заполняю их:
>>> productListRequest = client.factory.create('productListRequest')
>>> productListRequest.UserId = 'myusername'
>>> productListRequest.Password = 'mypassword'
>>> productListRequest.TRNUID = uuid.uuid4()
>>> ProductListInput = client.factory.create('ProductListInput')
>>> ProductListInput.DnB_DUNS_Number = ''
>>> ProductListInput.Product = 'Product Name'
>>> ProductListInput.CountryCode = 'IT'
>>> ProductListInput.TradeUp = ''
>>> ProductListInput.Reason = ''
>>> productListRequest.ProductListInput = ProductListInput
Но всякий раз, когда я звоню в службу:
>>> print client.service.ws_ProductList(productListRequest)
Я получаю Type not found: 'ArrayOfUPD_FLDSItem'
Ядействительно застрял здесь.Я погуглил эту ошибку в течение 2 дней и, честно говоря, я не знаю, что делать!Может быть, кто-то с более глубоким пониманием WSDL и suds может помочь.
Итак, мои вопросы:
Является ли этот WSDL, который я потребляю, правильно определенным?(Если он определен правильно, я сообщу об этом сопровождающим suds)
Если этот WSDL не определен должным образом, существует ли обходной путь (например, врач схемы suds) для его исправлениясайт?
Есть ли альтернативная библиотека Python, которую я должен использовать?