2012-04-19 7 views
1

私は、英国での郵便番号の検索にQAS Webサービスを使用しようとしています。リクエストXMLを投稿すると、「サーバーはHTTPヘッダーSOAPAction:DoSearchの値を認識しませんでした」と表示されます。サードパーティのWebサービスから応答を受け取ることができません

mMethod.setRequestHeader( "SOAPAction"、 "/ DoSearch")を削除すると、 SOAPClientから受け取ったエラーは です。有効なアクションパラメータなしでリクエストを処理できません。有効な石鹸を供給してください。

WSDLへのリンクは次のとおりです。 https://ws.ondemand.qas.com/ProOnDemand/V3/ProOnDemandService.asmx?WSDL

私はpromlemは、私は、ヘッダー内のアクションのパラメータを設定することができるというわけではないということだと思いますが、私はこれを行う方法上の任意の手掛かりを持っていけない、と私は詰まった助けてください。

私が投稿しようとしている要求XMLは次のとおりです。

<?xml version="1.0" encoding="utf-8"?> 
<soap:Envelope 
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns:qas="http://www.qas.com/OnDemand_2011-03"> 
<soap:Header> 
<qas:QAAuthentication> 
<qas:Username>username</qas:Username> 
<qas:Password>password</qas:Password> 
</qas:QAAuthentication> 
</soap:Header> 
<soap:Body> 
<QASearch RequestTag="Single Line postcode search" 
xmlns:web="http://www.qas.com/OnDemand_2011_03"> 
<web:Country>GBR</web:Country> 
<web:Engine Flatten="true ">Singleline</web:Engine> 
<web:Layout>QADefault</web:Layout> 
<web:Search>B168JR</web:Search> 
</QASearch> 
</soap:Body> 
</soap:Envelope> 
申し訳
+1

WSDLへのリンクを提供できますか? – Michael

+0

私はそれが生成されたクライアントクラスファイルのためだと強く思っています。私はそれらを再生成して試してみることをお勧めします。 – kosa

+0

申し訳ありませんが、WSDLへのリンクは次のとおりです:https://ws.ondemand.qas.com/ProOnDemand/V3/ProOnDemandService.asmx?WSDL –

答えて

3

は、このように遅く、私はちょうどあなたの質問を見てきましたされた - 私は確かにあなたが今までにこれを整理することができたと思っています!

自動化されたツールを使用して、WSDLからその要求を作成するか、手動で作成しましたか?あなたの要求の構造にはいくつかの問題があります。

はあなたに似た構造を使用する必要が働いて、それを取得するには:

私が変更したいくつかのものがあります
<soap:Envelope 
     xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
     xmlns:qas="http://www.qas.com/OnDemand-2011-03"> 
<soap:Header> 
<qas:QAQueryHeader> 
    <qas:QAAuthentication> 
     <qas:Username>username</qas:Username> 
     <qas:Password>password</qas:Password> 
    </qas:QAAuthentication> 
</qas:QAQueryHeader> 
</soap:Header> 
<soap:Body> 
    <qas:QASearch> 
     <qas:Country>GBR</qas:Country> 
     <qas:Engine Flatten="true ">Singleline</qas:Engine> 
     <qas:Layout>QADefault</qas:Layout> 
     <qas:Search>B168JR</qas:Search> 
    </qas:QASearch> 
</soap:Body> 
</soap:Envelope> 

  • qas:QAQueryHeaderがヘッダーに追加されました。これは、QAS OnDemandサービスで必要です。
  • 修正し、あなたの名前空間が(ダッシュするアンダースコア):
    • 前:のxmlns:QAS = "http://www.qas.com/OnDemand _ 2011-03" の後
    • :のxmlns:QAS = 「http://www.qas.com/OnDemand から 2011-03」
  • QASearchのための余分な名前空間のインポートが簡単にするために除去され、要求整頓。
関連する問題