WCF Web服务检查标头值和解析主体

时间:2012-01-04 18:54:26

标签: c# wcf web-services rest post

我运行的WCF Web服务接受以下(REST):

[OperationContract]
[WebInvoke(Method = "POST", UriTemplate = "/StatusUpdate")]
string SMSUpdateStatus(Stream input);

[OperationContract]
[WebInvoke(Method = "POST", UriTemplate = "/ReceiveSMS")]
string SMSReceived(Stream input);

为了验证请求,我需要组合POST中传递的每个值(ContentType:application / x-www-form-urlencoded),用特定键哈希它们,然后将它与特定的头值进行比较

我没有通过使用类似的东西验证这个工作正常:

StreamReader sr = new StreamReader(input);
string s = sr.ReadToEnd();
sr.Dispose();
NameValueCollection qs = HttpUtility.ParseQueryString(s));

string Val1= qs["val_a"];
string Val2= qs["val_b"];

我似乎无法弄清楚如何提取标头值(我需要为比较做)或拆分我的NameValueCollection,它看起来只是将我的整个有效负载保存在一个密钥中。

1 个答案:

答案 0 :(得分:1)

也许尝试:

OperationContext.Current.IncomingMessageHeaders

会服务吗?我没有测试过这个,但我很想听听你的结果