我在stackoverflow中看到一些帖子说“sending list of items in the GET Method, is NOT allowed. It has to be accomplished via POST method only”
我的代码看起来像
[OperationContract]
[WebGet(UriTemplate = "Employee/{emp}",RequestFormat=WebMessageFormat.Json)]
Employee GetEmpDetails(string emp);
我输入的json对象将是“{'id':1,'name':'test',....} 有没有其他方法可以解决这个问题。
由于
答案 0 :(得分:3)
可以使用GET发送项目列表,只是开箱即用,只支持原始值。字符串值工作正常,但如果要传递复杂对象,则需要创建自定义QueryStringConverter
。 http://blogs.msdn.com/b/carlosfigueira/archive/2011/08/09/wcf-extensibility-querystringconverter.aspx上的帖子解释了如何做到这一点。
答案 1 :(得分:2)
如果您使服务RESTful,您很可能将HTTP PUT用于Add方法,使用HTTP POST用于Update方法。将对象传递给这些方法是绝对可以的,因为objet将是HTTP请求主体的一部分,而不是URI的一部分。 URI对HTTP GET请求很重要。 HTTP GET请求应该仅用于数据检索,而不是用于数据修改。
答案 2 :(得分:1)
您正在混合HTTP GET / POST / ...请求和REST GET / POST / PUT / DELETE / ... 当你想要一些RESTful请求 - 你做一个GET请求。在你的情况下,我认为它应该看起来像
employee/{id}
或
employee/{name}
请注意,最好在URI中使用小写字母。 如果您需要多个GET标准,我认为它可能看起来像:
employee/id/{id}/name/{name}