Java ベースの Web サービスへのリクエストを作成する C# メソッドがあります。クラスをシリアライズしてサービスに投稿すると400
、名前付きのルート要素が見つからないことを示すステータスが返されます。フィドラーを使用する場合、リクエストを受け取り、コンポーザーで手動で構築して処理すると成功します。Hex Viewer を使用すると、C# から発行されたリクエストのヘッダーとリクエスト データの間に次の文字があることに気付きましたEF BB BF
. Fiddler で実行したカット アンド ペーストの要求は実行されず、成功します。私はJavaサービスの構築に精通していないので、リクエストを処理するときにJavaに文字を無視するように指示する方法を見つける方が簡単でしょうか.Netでさらに別のシリアライザーを構築する方が簡単でしょうか? 可能な限り迅速な解決策に到達するためだけに、ここで宗教戦争を開始することは私の意図ではありません.
シリアル化するコードは次のようになります。
//seralize the Request
XmlSerializer msgSerializer = new XmlSerializer(Msg.GetType());
try
{
request = (HttpWebRequest)WebRequest.Create(_endpoint);
request.Method = "POST";
request.KeepAlive = true;
request.SendChunked = true;
using (Stream myRequestStream = request.GetRequestStream())
{
XmlTextWriter requestWriter = new XmlTextWriter(myRequestStream, Encoding.UTF8);
msgSerializer.Serialize(requestWriter, Msg);
myRequestStream.Close();
}
response = request.GetResponse();
}
catch (WebException webE)
{
//Yada Yada Yada
...
}