我在 .net 4 中运行了一个 REST WCF 服务,并且我已经测试了它正在工作并接受我对其发出的 HttpRequest 的 Web 服务。但我在尝试访问 Web 服务中的 HttpRequest 主体时遇到了问题。我尝试使用 Fiddler 和我的 WinForm 应用程序发送附加在 HttpRequest 上的随机大小的数据,但我似乎无法在运行时找到任何可以找到我的请求正文所在的对象。我最初的直觉是看看HttpContext.Current.Request.InputStream
但该属性的长度为 0,所以我尝试查看IncomingWebRequestContext
该对象甚至没有方法或属性来获取 HttpRequest 的正文。
所以我的问题是,实际上是否有一种方法可以访问 WCF 中的 HttpRequest 请求正文?
附:
请求正文中的数据是 JSON 字符串,对于响应,它也会以 JSON 字符串形式返回响应正文中的数据。
更简单,这个答案WCF + REST:请求数据在哪里? https://stackoverflow.com/questions/1850293/wcf-rest-where-is-the-request-data/1850832#1850832工作正常。
另外,如果您的请求正文是可反序列化的,您只需传递一个类即可。除非有一些拼写错误,这应该有效:
public class Banana
{
public string Colour;
public int Size;
}
...
[WebInvoke(
Method = "POST",
UriTemplate = "bananas",
ResponseFormat=WebMessageFormat.Json,
RequestFormat=WebMessageFormat.Json)]
string CreateBanana(Banana banana);
...
public string CreateBanana(Banana banana)
{
return "It's a " + banana.Colour + " banana!";
}
对数据进行 POST{"Colour": "blue", "Size": 5}
该资源应该返回"It's a blue banana!"
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)