摘要:[ASP.NET] 使用 HttpUtility.ParseQueryString 剖析網址參數
前言
這篇來說明一下該如何分析含 QueryString 參數的網址後分別取得其 Key/Value,請參考以下範例 。
範例
首先需要將 URL 轉換成 URI (統一資源識別源),使用 Uri 建構函式 (String) 即可,當轉換成 Uri 物件後,就能夠透過 Uri 類別的屬性及方法進行剖析、比較、組合等操作。
Uri uri = new Uri("http://localhost/test/test.aspx?id=1234567&seq=1&name=Arvin");
接下來使用 HttpUtility 類別的 ParseQueryString 方法將 Uri.Query 屬性傳入即可將 Uri 剖析為 NameValueCollection 物件,NameValueCollection 是一種 Key/Value 型態的集合。
HttpUtility.ParseQueryString(uri.Query, System.Text.Encoding.UTF8);
完整的操作方式如下
protected void Button1_Click(object sender, EventArgs e)
{
NameValueCollection collection = GetUrlParams("http://localhost/text/test.aspx?id=1234567&seqno=1&name=Arvin");
// 取得全部參數
foreach (var key in collection.AllKeys)
{
Response.Write(string.Format("KeyAndValue: {0} / {1}<br>", key, collection[key]));
}
// 取得單一參數
Response.Write(string.Format("KeyAndValue: {0} / {1}<br>", "id", collection.Get("id")));
}
/// <summary>
/// 剖析URL參數
/// </summary>
/// <param name="pURL"></param>
/// <returns></returns>
private NameValueCollection GetUrlParams(string pURL)
{
Uri uri = new Uri(pURL);
return HttpUtility.ParseQueryString(uri.Query, System.Text.Encoding.UTF8);
}
顯示結果
KeyAndValue: id / 1234567
KeyAndValue: seqno / 1
KeyAndValue: name / Arvin
KeyAndValue: id / 1234567
參考資料
HttpUtility.ParseQueryString 方法
以上文章敘述如有錯誤及觀念不正確,請不吝嗇指教
如有侵權內容也請您與我反應~謝謝您 :)