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>");
        }

    }
}