ASP.NET C# 判斷HTTP來源類型,取得HTTP 請求(GET, POST)參數
透過 C# for ASP.NET 的 Response 可以取得HTTP請求相關訊息
取得HTTP Request 類型
可以透過下面兩種方式取得HTTP Request 類型 (GET、POST…)
Request.RequestType
HttpContext.Current.Request.HttpMethod
取得 GET 參數
透過 Request.QueryString[“Key”] 可以取得 GET 參數
取得 POST 參數
透過 Request.Form[“Key”] 可以取得 POST 參數
取得HTTP 參數
如果不區分 GET POST ,透過 Request[“Key”] 只要key相符就取得
若GET POST 同時有相同的key,就會以GET為主
判斷是否為頁面 POST_BACK
當表單在同頁送出POST,就可以用 Page.IsPostBack 來偵測
範例
下方示範 HTTP 請求:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
// 取得HTTP Request 類型
Response.Write(HttpContext.Current.Request.HttpMethod + "<BR>");//GET, POST...
// 取得HTTP Request 類型
Response.Write(Request.RequestType + "<BR>");//GET, POST...
if (Request.RequestType == "GET")
{
//取得 GET 值
Response.Write(Request.QueryString["TextBox1"] + "<BR>");
}
if (Request.RequestType == "POST")
{
//取得 POST 值 - 欄位名稱 TextBox1
Response.Write(Request.Form["TextBox1"] + "<BR>");
}
// 不管GET或POST,都會取得值 (以 GET 值為優先)
Response.Write("Always show:" + Request["TextBox1"] + "<BR>");
if (Page.IsPostBack)
{
Response.Write("PAGE POST BACK<br>");
}
}
}