2017-02-15 93 views
2

我一直在使用python zeep來檢查WSDL文檔並生成相應的代碼以使用wsdl文檔中的服務和類型。Python Zeep可用服務概述

下面的代碼是一個簡短的例子。它部分工作。問題是:這些參數不正是Web服務正在等待

client = Client(wsdl='veda/wsdl/vedascore-apply-v2-0-6.wsdl') 
client.service.submitEnquiry('Zeep', 'is cool') 

爲了找出我本來是要送,並獲得在端點上提供的服務的概述,我執行我在終端下面的命令:

python -mzeep 'veda/wsdl/vedascore-apply-v2-0-6.wsdl' 

命令的結果上面,我將連接here大的文本文件。現在我已對服務進行了概述,我想我應該創建一個正確的呼叫簽名。我也瀏覽了官方文檔,並設法執行以下代碼:

client = Client(wsdl='veda/wsdl/vedascore-apply-v2-0-6.wsdl') 
    request_type = client.get_type('ns0:requestType') 
    client.service.submitEnquiry(request_type) 

上面的代碼甚至沒有接近最終解決方案。爲了建立一個適當的電話,我必須瞭解我正在努力做的服務的概況。下面的圖片只是描述的一部分。如果你可以給我任何想法,我很樂意聽你的。

overview of the services

親切問候。

Ronildo布拉加少年

回答

0

以防萬一,如果你正面臨着同樣的問題,請參見下面的你應該如何製作這個電話

enquiry_header = { 
     'client-reference': 'my-ref-101', 
     'operator-id': 101, 
     'operator-name': 'Adam Hills', 
     'permission-type-code': 'XY', 
     'product-data-level-code': 'N', 
     'requested-scores': {'scorecard-id': ['VSA_2.0_XY_NR']} 
    } 

    enquiry_data = { 
     'individual': { 
      'current-name': { 
       'title': 'Mr', 
       'family-name': 'Hunt', 
       'first-given-name': 'Matthew', 
       'other-given-name': 'Eales' 
      }, 
      'addresses': { 
       'address': [{ 
        'type': 'C', 
        'unit-number': 12, 
        'street-number': 4, 
        'street-name': 'Huntsman', 
        'street-type': 'CIR', 
        'suburb': 'Pyrmont', 
        'state': tf.stateType('NSW'), 
        'postcode': 2011 
       }] 
      }, 
      'drivers-license': {'number': '758811G'}, 
      'gender-code': 'M', 
      'date-of-birth': '1970-01-26', 
      'employment': { 
       'employer': [employerType(name='DATA FISH PTD LTD', type='C')] 
      } 
     }, 
     'enquiry': { 
      'account-type-code': 'PR', 
      'enquiry-amount': tf.MoneyType(5000, 'AUD'), 
      'is-credit-review': False, 
      'relationship-code': 1 
     } 
    } 

    print(client.service.submitEnquiry(enquiry_header, enquiry_data))