我运行的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,它看起来只是将我的整个有效负载保存在一个密钥中。
答案 0 :(得分:1)
也许尝试:
OperationContext.Current.IncomingMessageHeaders
会服务吗?我没有测试过这个,但我很想听听你的结果