我正在使用SOAP Web服務,它使用的是suds (0.4)。我使用的WSDL拋出suds拋出錯誤'type not found'正在使用SOAP服務
>>> 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'
我真的被困在這裏。我把這個錯誤用了兩天,老實說我不知道該怎麼辦!也許對WSDL和泡沫更深入瞭解的人可以提供幫助。
所以我的問題:
這是WSDL,這我消耗正確定義?如果WSDL不正確的定義(如果是正確的定義,我將其報告給皁液 維護者)
,有一種解決方法(例如 泡架構醫生),以將其固定到泡沫的網站?
是否有另一個Python庫,我應該使用?
我已將完整的日誌文件發佈到http://pastebin.com/ZJJFXZaG,因爲它包含在這裏大。所以我的理解是,我得到了服務的迴應,但是通過泡沫本身對已知數據結構的閱讀和應用似乎失敗了。 – jazz
放入pdb並逐行掃描從違規行到失敗的每行代碼......您應該看到何時類型跟蹤機器不再跟蹤該軌跡 –
我已經接受了您的答案,但它會很棒,如果您已經提出了更多的WSDL ;-) – jazz