2017-04-15 16 views
0

xmlペイロードをsoap Webサービスの文字列として送信できますか?同じHTTPクライアントライブラリ(Apache HttpClient、RxNetty)を使用することは許されていますか、SAAJフレームワーク(http://stackoverflow.com/questions/15948927/working-soap-client-example)のみを使うべきですか?xmlペイロードをSOAP Webサービスに文字列として送信することはできますか

例えば、

curl --header "Content-Type: text/xml;charset=UTF-8" 
--header "SOAPAction:http://www.webserviceX.NET/ConversionRate" 
--data @request3.xml http://www.webservicex.net/CurrencyConvertor.asmx 


<?xml version="1.0" encoding="utf-8"?> 
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 
    <soap:Body> 
    <ConversionRate xmlns="http://www.webserviceX.NET/"> 
     <FromCurrency>USD</FromCurrency> 
     <ToCurrency>GBP</ToCurrency> 
    </ConversionRate> 
    </soap:Body> 
</soap:Envelope> 
+0

あなたは、カールで可能であることを確認しました。 HttpClientで簡単に試してみませんか?最後に、各SOAPフレームワークはワイヤを介してXMLを送受信します。あなた自身でSOAP標準を実装するのを止めるものはありません。あなたは他の人たちがどのように見たかを見ることさえできます。ほとんどのフレームワークはオープンソースです。 – vanje

答えて

1

はい、それは実際には、ボンネットの下に、それはあなたが_url URIに位置SOAPベースのWebサービス_actionを呼び出すときに何が起こるかだ、完全に可能である:

XmlDocument soapEnvelop = new XmlDocument(); 
    soapEnvelop.LoadXml(@"<?xml version="1.0" encoding="utf-8"?> 
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 
    <soap:Body> 
    <ConversionRate xmlns="http://www.webserviceX.NET/"> 
     <FromCurrency>USD</FromCurrency> 
     <ToCurrency>GBP</ToCurrency> 
    </ConversionRate> 
    </soap:Body> 
</soap:Envelope>"); 

HttpWebRequest webRequest = CreateWebRequest(_url, _action); 
using (Stream stream = webRequest.GetRequestStream()) 
    { 
     soapEnvelopeXml.Save(stream); 
    } 

あなたのSOAPエンベロープがロードされたあなたのリクエストはすぐに処理されます!

関連する問題