URLにパラメータを追加するときは、HTTP GETを実行しています。 HTTP経由で「標準の」SOAPを行っている場合、あなたの前提は正しくありません。すべてのSOAPサービスはPOSTを使用します。彼らは技術的にGETを使うことができますが、通常はPOSTが表示されます。理由は簡単です。 SOAP XMLは複雑であり、URL内のXMLは本当の苦痛になるでしょう。
はあなたのようなXMLのシンプルな一枚を持っていると仮定すると:
<Customer>
<Name>John</Name>
</Customer>
GETのURLは恐ろしい何かになるだろう。
これで、サーバーはどの操作を実行するのかを知ることができます。さて、それは作られた要求を見ます。操作はURLに指定されていません。
たとえば、ListAccountsForStatusとListTelephonicContactsByDateという2つの操作を持つサービスがあり、どちらもURLはhttp://my-server:9100/AccountService/V1です。しかし、要求が異なって見える:
POST http://my-server:9100/AccountService/V1
Accept-Encoding: gzip,deflate
Content-Type: text/xml;charset=UTF-8
SOAPAction: "http://www.insol.irix.com.au/ECollNXDB_V1/EcollUtilsServices/ListTelephonicContactsByDate"
Content-Length: 1337
Host: my-server:9100
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.1.1 (java 1.5)
<soapenv:Envelope>
<soapenv:Header/>
<soapenv:Body>
<ecol:ListTelephonicContactsByDate>
<ecol:ListTelephonicContactsByDateReq>
<ecol:Date>2016-08-04</ecol:Date>
</ecol:ListTelephonicContactsByDateReq>
</ecol:ListTelephonicContactsByDate>
</soapenv:Body>
</soapenv:Envelope>
2つ目:操作はSOAPActionヘッダーに指定されていること
POSThttp://my-server:9100/AccountService/V1 HTTP/1.1
Accept-Encoding: gzip,deflate
Content-Type: text/xml;charset=UTF-8
SOAPAction: "http://www.insol.irix.com.au/ECollNXDB_V1/EcollUtilsServices/GetAccountStatusInfo"
Content-Length: 1329
Host: my-server:9100
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.1.1 (java 1.5)
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ecol="http://www.insol.irix.com.au/ECollNXDB_V1" xmlns:irix="http://www.insol.irix.com.au/IRIX_Headers_V1" xmlns:irix1="http://schemas.datacontract.org/2004/07/IRIXContract.MsgHeaderBase">
<soapenv:Header/>
<soapenv:Body>
<ecol:GetAccountStatusInfo>
<ecol:GetAccountStatusInfoReq>
<ecol:accountNumber>376062766403006</ecol:accountNumber>
</ecol:GetAccountStatusInfoReq>
</ecol:GetAccountStatusInfo>
</soapenv:Body>
</soapenv:Envelope>
は注意してください。つまり、SOAP Webサービスを使用することです。
- ポイントあなたのコード生成ライブラリ(あなたのケースでWCFブルーのための外観、またはどのようにC#のためのWSDLからコードを生成するために) WSDLに、必要なクラスを生成します。
- 生成されたクラスを使用して、WSDL URL以外のURLを使用してサービスとやり取りします。
xmlリクエストを手作業でコード化してレスポンスを読む必要はありません。
Welcome to stackoverflow.comあなたの質問を明確にすることはできますか? wsdlファイルから独自のWebServiceを作成する方法を尋ねますか? https://stackoverflow.com/questions/1394930/how-to-generate-web-service-out-of-wsdl – wp78de