能否在同一个方法中同时使用GET和POST请求?

6
我想了解一下,在WCF REST服务中,是否可以在同一个方法中同时使用HTTP POST和HTTP Get?我的意思是,客户端页面可以使用post或get来调用我的方法。
我的客户要求我以这种方式实现一个方法。
引用:
由于我们的API是“RESTful”服务,我们应该能够在此方法中同时使用GET和POST。参数可以放置在GET请求的URL中,也可以放置在GET请求的Header部分中。当使用HTTP POST时,参数可以存储在header部分或body部分中。
这可行吗?

1
工作的一部分就是尝试。所以...去做吧。 - lordkain
1
这不是很符合REST的规范。如果同时使用它们,POST方法实际上并没有按照其原意执行。 - undefined
是的,这是可能的,但POSTGET两种方法具有不同的含义,因此在同一方法上使用它们是没有意义的。 - Sachin
我已经编辑了我的问题,以便更好地解释。请查看。 - Arti
你是不是想要类似这样的代码 <form action="home.aspx?var1=0" > - Stuart
1个回答

3
让我们通过编写代码来实现!假设您有一个方法!
[OperationContract]
[WebInvoke(Method = "POST", UriTemplate = "Leads",
ResponseFormat = WebMessageFormat.Xml,
RequestFormat = WebMessageFormat.Json,
BodyStyle = WebMessageBodyStyle.Bare)]
[WebGet(UriTemplate="/Leads")]
Result AddLeads(ReqLead[] rl); // This is our method.

当您运行服务时,它将被编译并成功运行,浏览器会显示一个页面。
现在,绿色箭头指向的是我的服务名称。点击它将重定向到错误页面,并使您清楚地了解情况!请参见下面的图片。
我希望这能给您一个想法。此外,在您的[OperationContract]中,您只能定义一种方法类型,无论是GET还是POST。您不能同时拥有两者。
谢谢

那么,“由于我们的API是“RESTful”服务,因此我们应该能够使用GET和POST两种方法。参数可以放置在GET请求的URL中,也可以放置在GET请求的Header部分中。当使用HTTP POST与此方法时,参数可以存储在Header部分或Body中。”这样做不可能吗? - Arti
1
这个链接说要定义两个具有相同UriTemplate的方法。这是最好的方法吗? - Arti
哼!!! 那你可以试试这个! 我理解你的问题是“是否可能在同一方法中同时使用HTTP POST和HTTP Get?” 因此,在同一方法中不可能,但是是的,您可以为GET和POST使用相同的UriTemplate。 这取决于您的请求类型是GET还是POST。 - Faizan Mubasher

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接