Visual Studio Express 2012 for Windows8でWinRTSurface TabletのC#コードを記述しています。xmlはフォーマットされていますが(正常に動作する他のプラットフォームのアプリから移植しています)、要求の構文に問題があるようです。
私はいくつかの異なるアプローチを試してきましたが、Windowsストアアプリのメソッドの制限で行き詰まりました。私が最後に試したのは、HttpClient、HttpContent、およびHttpRequestMessageを使用することです:(明らかに、実際のxmlとURLは省略しています)
string xmlSOAP = "..............[my soap xml]................."
string url = "http://example.domain.com/myMagicalwebservice.asmx"
string SOAPAction = "www.blahblah.com/doXMLStuff";
HttpClient hc = new
HttpContent content = new String Content(xmlSOAP);
HttpRequestMessage req = new HttpRequestMessage(HttpMethod.Post, url);
req.Headers.Add("SOAPAction", SOAPAction);
req.Method = HttpMethod.Post;
req.Content = content;
req.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/soap+xml;charset=UTF-8");
hc.SendAsync(req).ContinueWith(responseTask =>
{
System.Diagnostics.Debug.WriteLine(responseTask.Result);
});
これにより、「値の形式'application / soap + xml; charset=UTF-8'が無効です」というSystem.FormatExceptionが発生します。
代わりに、コンテンツタイプをHttpRequestMessageではなくHttpContentに直接追加すると、同じ結果が得られます。
コンテンツタイプを追加する行をコメントアウトするだけで(ここでは試行錯誤を繰り返します)、ステータスコード415「サポートされていないメディアタイプ」の結果が表示されます。
HttpClientのPostAsyncメソッドを使用して投稿しようとしましたが、それを使用して応答を取得する方法がわかりません。
どんな助けでも大歓迎です、そして私はあなたの時間を前もって感謝します!