我有使用Jquery发布的WCF服务。
它在我的开发环境中工作正常,但是现在将部署到AppHarbor的服务器上不检索POSTed值。
服务的定义如下:
[OperationContract]
[WebInvoke(Method="POST", UriTemplate="/RunReport/MyReport", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
WebResults MyReport();
在实现中,我得到如下值:
public WebResults MyReport()
{
var value = HttpContext.Current.Request.Form["formName"];
...
}
实现类也有这个属性:
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
正如我所说,这在本地工作正常,我可以看到正确的数据正在由Firebug中的jquery发布,但出于某种原因在AppHarbor上HttpContext.Current.Request.Form [" formName"]总是返回NULL。
有什么想法吗?
答案 0 :(得分:0)
嗯,我不确定问题是什么,但我找到了解决办法......
我现在使用以下代码,它似乎有效:
StreamReader reader = new StreamReader(stream);
String res = reader.ReadToEnd();
NameValueCollection coll = HttpUtility.ParseQueryString(res);
criteria.Retailers= coll["Retailers"].Split('|');
我在这篇文章中找到了答案:WCF + REST: Where is the request data?