【发布时间】:2013-09-25 22:13:43
【问题描述】:
我正在用 C# 开发一个 Restful 服务并且在我使用时运行良好
[OperationContract]
[WebInvoke(Method = "GET", ResponseFormat = WebMessageFormat.Xml, BodyStyle =
WebMessageBodyStyle.Wrapped, UriTemplate = "json/?id={id}")]
string jdata(string id);
而我对应的函数实现是:
public string json(string id)
{
return "You Typed : "+id;
}
到目前为止一切正常, 但是当我更改 WenInvoke Method="POST" 时,我必须面对“不允许的方法。”;
[WebInvoke(Method = "POST", ResponseFormat = WebMessageFormat.Xml, BodyStyle =
WebMessageBodyStyle.Wrapped, UriTemplate = "json/?id={id}")]
string jdata(string id);
【问题讨论】:
-
您实际上是否向服务发送了 POST 请求?或者您是否尝试使用“仅网络浏览器中的 URL”来访问它? (WebBrowser URL = GET,网页表单 = POST)。 Get 只需要一个 URL Post 需要一个 URL + Body
-
为什么不直接使用 MVC 4 Web API
-
@marvinSmit,请告诉我如何在 WEBINVOKE 中使用 Post 方法。谢谢
-
WebInvoke 属性将您的 Web 服务定义为“发布”。客户端需要确保它使用的是 POST 而不是 GET(即浏览基于 POST 的 RestFull 服务将产生一个不允许的方法)。如果您想使用浏览器进行测试,您必须制作一个“表单”,其中表单字段是参数,并且表单的操作设置为您的 Web 服务操作端点。
标签: web-services rest wcf-rest