2016-06-15 7 views
2

でContractFilterの不一致に、受信側で処理することができません。ここでhttp://bsestarmfdemo.bseindia.com/MFUploadService/MFUploadService.svc?WSDLのPython +のSOAP:アクションとのメッセージが「」によりpythonの要求を使用して、この石鹸のWebサービスにアクセスしようとしEndpointDispatcher

は私の要求です。

import requests 
url="http://bsestarmfdemo.bseindia.com/MFUploadService/MFUploadService.svc?WSDL" 
#headers = {'content-type': 'application/soap+xml'} 
headers = {'content-type': 'application/soap+xml'} 
body = """<?xml version="1.0" encoding="UTF-8"?> 
     <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:tem="http://tempuri.org/"> 
    <soap:Header/> 
    <soap:Body> 
     <tem:getPassword> 
     <!--Optional:--> 
     <tem:UserId>1003201</tem:UserId> 
     <!--Optional:--> 
     <tem:MemberId>10032</tem:MemberId> 
     <!--Optional:--> 
     <tem:Password>xxxxxxxx</tem:Password> 
     <!--Optional:--> 
     <tem:PassKey>xxxxxx123</tem:PassKey> 
     </tem:getPassword> 
    </soap:Body> 
</soap:Envelope>""" 

response = requests.post(url,data=body,headers=headers) 
print (response.content) 

この応答:

B」アクション\とSendera:ActionNotSupportedメッセージ '\' のために、 受信機で処理することができません EndpointDispatcherのContractFilterが一致しません。これは、契約不一致 (送信者と受信者の間の不一致のアクション)または送信者と受信者間のバインド/セキュリティの不一致( )が原因である可能性があります。送信者と 受信者が同じ契約と同じバインディングを持っていることを確認します(メッセージ、転送、 なしなどのセキュリティ要件を含む を含む)。

私が正しく理解している場合は、おそらく要求にアクションを設定する必要がありますが、その方法を理解することはできません。私は完全にpythonで石鹸の新しいです、これを修正する方法をお勧めします。 ありがとう!

答えて

0

だけ、例えば、ヘッダ上のSOAPActionを追加:

headers = {'Content-type': 'text/xml;charset=UTF-8', 
     'SOAPAction': 'http://google.com/ISearchService/Find' 
     } 
関連する問題