我目前在C#处理程序(.ashx)中使用context.Request.QueryString,因为到目前为止我只需要处理GET帖子。
虽然如果我通过POST方法发送了一个JSON对象怎么办?我知道我应该反序列化已发送的内容,但我的观点是 - 我怎么知道发送源是发送了POST还是GET。
为什么呢?因为我想将处理程序拆分为POST相关函数(通常需要安全性的东西)和更原始的GET相关函数(检索公共信息等)
如果重要,我的代码现在看起来像这样(并且它还没有准备好正确处理POST)。
public void ProcessRequest (HttpContext context) {
context.Response.ContentType = "application/json";
JavaScriptSerializer jss = new JavaScriptSerializer();
// Wanna know POST was used here, so I can deserialize the sent JSON data
// ----
// Handling GET here, good and working
if (context.Request.QueryString["aname"] != null
&& context.Request.QueryString["type"] != null)
{
string adminName = context.Request.QueryString["aname"];
if(adminName == "test") { // Return some JSON object }
}
}
答案 0 :(得分:5)
您可以访问context.Request
,因此您只需使用其HttpMethod
property即可查看是POST,GET还是其他内容。
答案 1 :(得分:3)
您可以使用Request.Form[parameter]
进行POST。查看相关帖子:How to handle C# .NET GET / POST?。
要检查请求是POST还是GET,您可以使用HttpContext.Current.Request.HttpMethod
(来自Detect if action is a POST or GET method)。