WCFでHTTP Postを介してフォームフィールドを受け入れる
質問
フォームデータをWCFベースのサービスに受け入れる必要があります。インターフェースは次のとおりです。
[OperationContract]
[WebInvoke(UriTemplate = "lead/inff",
BodyStyle = WebMessageBodyStyle.WrappedRequest)]
int Inff(Stream input);
実装は次のとおりです(サンプル-エラー処理およびその他の保護手段なし):
public int Inff(Stream input)
{
StreamReader sr = new StreamReader(input);
string s = sr.ReadToEnd();
sr.Dispose();
NameValueCollection qs = HttpUtility.ParseQueryString(s);
Debug.WriteLine(qs["field1"]);
Debug.WriteLine(qs["field2"]);
return 0;
}
WCFを想定して、着信ストリームを解析する以外にこれを達成するより良い方法はありますか?
解決
DevLinkでこれについてお話ししたことを覚えています。
フォームフィールドをサポートする必要があるため、それらを取得するメカニズム(現在何をしているのか)は変わりません。
特に、フォームフィールドを必要としない新しいアプリケーションにサービスを再利用する場合に役立つと思われるものは、ストリームを分解してXML / JSON / SOAP / Whateverに再パッケージ化するチャネルを作成することですフォームクライアントはそれを介してサービスと通信しますが、フォームを使用しないクライアントは別のチャネルスタックを使用できます。ただのアイデア...
役立つことを願っています。チャンネルに関するサポートが必要な場合は、お気軽にお知らせください。
他のヒント
jqueryでフォームフィールドをシリアル化し、wcfサービスへのjsonリクエストとしてパッケージ化できます。
所属していません StackOverflow