2017-11-24 10 views
0

私は、WSDLファイルのこの部分を持っている:ZEEPクライアントにパラメータを渡す

<soapenv:Header/> 
<soapenv:Body> 
    <pag:creaCarrello> 
    <GestioneCarrelliRequest> 
     <utenteApplicativo>YZSMOPMO</utenteApplicativo> 
     <carrelloDto> 
      <idCarrelloSorgente>11223344</idCarrelloSorgente> 
      <itemCarrelloDtoList> 
       <causale>prova</causale> 
       <codiceEnte>CCIAA_MI</codiceEnte> 
       <importo>2</importo> 
       <importoImposta>1</importoImposta> 
       <importoTotale>3</importoTotale> 
       <importoUnitario>2</importoUnitario> 
       <quantitaItem>1</quantitaItem> 
       <tipoContabilizzazione>TA</tipoContabilizzazione> 
      </itemCarrelloDtoList> 
     </carrelloDto> 
    </GestioneCarrelliRequest> 
    </pag:creaCarrello> 

このサービスは、Javaで書いたSOAPあります。私は、このサービスを照会する必要があると私はPythonのZEEPライブラリを使用しています:

def soapclient(request): 

    session = Session() 
    session.auth = HTTPBasicAuth('user', 'password', transport=Transport(session=session)) 
    client = Client('my_url_of_wsdl_file.wsdl') 

    utenteApplicativo='XXXX'  
    idCarrelloSorgente=11223344 
    itemCarrelloDtoList=('prova', 'Datatest', 2, 1, 3, 2, 1, 'TA') 
    carrelloDto=(idCarrelloSorgente, itemCarrelloDtoList) 
    var=(utenteApplicativo, carrelloDto) 
    call=client.service.creaCarrello(var) 
    var=(utenteApplicativo, carrelloDto) 

    print('variabile del client: ', var) 

    call1=client.service.creaCarrello(var) 

    print(call1) 

が、私はジャンゴからエラーが表示さ:

ValidationError at /soapclient/ 
Missing element utenteApplicativo (creaCarrello.GestioneCarrelliRequest) 

パラメータが間違った方法で渡されますが?この例では

+0

ジープ実装全体を入れてもいいですか? – general03

+0

は、ジープクライアントのすべてのビューで更新してください。 –

答えて

0

def soapclient(request): 

    session = Session() 
    session.auth = HTTPBasicAuth('user', 'password', transport=Transport(session=session)) 
    client = Client('my_url_of_wsdl_file.wsdl') 

    call=client.service.creaCarrello(
     utenteApplicativo='YZSMOPMO', 
     carrelloDto= { 
     idCarrelloSorgente=11223344, 
     itemCarrelloDtoList= { 
     causale='prova' 
     codiceEnte='CCIAA_MI', 
     importo=2, 
     importoImposta=1, 
     importoTotale=3, 
     importoUnitario=2, 
     quantitaItem=1, 
     tipoContabilizzazione='TA' 
     } 
     } 
    ) 
+0

idCarrelloSorgente行に無効な構文があります。正しいと思われます。 –

+0

エラーメッセージは何ですか? – general03

0

誤差があります。

invalid syntax (views.py, line 193) 

ここで、193はidCarrelloSorgente = 11223344と定義されている行です。 は、このように渡す:

call=client.service.creaCarrello('YZSMOPMO', {99999999994, {'causale':'prova', 'codiceEnte':'CCIAA_MI', 'importo':2, 'importoImposta':1, 'importoTotale':3, 'importoUnitario':2, 'quantitaItem':1, 'tipoContabilizzazione':'TA'}, },) 

私はエラーが表示されます。

unhashable type: 'dict' 

これらはクライアントに引数を渡す方法ですwrogようです。

関連する問題