HttpUtility.ParseQueryString メソッド

定義

クエリ文字列を解析して NameValueCollection にします。

オーバーロード

ParseQueryString(String)

UTF8 エンコードを使用してクエリ文字列を NameValueCollection に解析します。

ParseQueryString(String, Encoding)

指定した Encoding を使用してクエリ文字列を NameValueCollection に解析します。

ParseQueryString(String)

UTF8 エンコードを使用してクエリ文字列を NameValueCollection に解析します。

public:
 static System::Collections::Specialized::NameValueCollection ^ ParseQueryString(System::String ^ query);
public static System.Collections.Specialized.NameValueCollection ParseQueryString (string query);
static member ParseQueryString : string -> System.Collections.Specialized.NameValueCollection
Public Shared Function ParseQueryString (query As String) As NameValueCollection

パラメーター

query
String

解析するクエリ文字列。

戻り値

NameValueCollection

クエリ パラメーターと値の NameValueCollection

例外

querynullです。

次のコード例は、ParseQueryString メソッドの使用方法を示します。 同じクエリ文字列変数が複数回出現すると、返されたエントリの 1 つのエントリに統合されます NameValueCollection

<%@ Page Language="C#"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

  protected void Page_Load(object sender, EventArgs e)
  {
    String currurl = HttpContext.Current.Request.RawUrl;
    String querystring = null ;

    // Check to make sure some query string variables
    // exist and if not add some and redirect.
    int iqs = currurl.IndexOf('?');
    if (iqs == -1)
    {
      String redirecturl = currurl + "?var1=1&var2=2+2%2f3&var1=3";
      Response.Redirect(redirecturl, true); 
    }
    // If query string variables exist, put them in
    // a string.
    else if (iqs >= 0)
    {
      querystring = (iqs < currurl.Length - 1) ? currurl.Substring(iqs + 1) : String.Empty;
    }
   
    // Parse the query string variables into a NameValueCollection.
    NameValueCollection qscoll = HttpUtility.ParseQueryString(querystring);
    
    // Iterate through the collection.
    StringBuilder sb = new StringBuilder("<br />");
    foreach (String s in qscoll.AllKeys)
    {
      sb.Append(s + " - " + qscoll[s] + "<br />");
    }
    
    // Write the result to a label.
    ParseOutput.Text = sb.ToString();

  }
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>HttpUtility ParseQueryString Example</title>
</head>
<body>
    <form id="form1" runat="server">
      Query string variables are:
      <asp:Label  id="ParseOutput"
                  runat="server" />
    </form>
</body>
</html>
<%@ Page Language="VB" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

  Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)

    Dim currurl As String = HttpContext.Current.Request.RawUrl
    Dim querystring As String = Nothing
    
    ' Check to make sure some query string variables
    ' exist and if not add some and redirect.
    Dim iqs As Int32 = currurl.IndexOf("?".ToCharArray())
    If (iqs = -1) Then
      
      Dim redirecturl As String = currurl & "?var1=1&var2=2+2%2f3&var1=3"
      Response.Redirect(redirecturl, True)
      
      ' If query string variables exist, put them in
      ' a string.
    ElseIf (iqs >= 0) Then
      
      If (iqs < currurl.Length - 1) Then
        querystring = currurl.Substring(iqs + 1)
      End If
          
    End If

    ' Parse the query string variables into a NameValueCollection.
    Dim qscoll As NameValueCollection = HttpUtility.ParseQueryString(querystring)
    
    ' Iterate through the collection.
    Dim sb As New StringBuilder("<br />")
    For Each s As String In qscoll.AllKeys
      
      sb.Append(s & " - " & qscoll(s) & "<br />")
    
    Next s
    
    ' Write the result to a label
    ParseOutput.Text = sb.ToString()
    
  End Sub
  
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
    <title>HttpUtility ParseQueryString Example</title>
</head>
<body>
    <form id="Form1" runat="server">
      Query string variables are:
      <asp:Label  id="ParseOutput"
                  runat="server" />
    </form>
</body>
</html>

注釈

このメソッドは ParseQueryString 、形式を使用 UTF8 してクエリ文字列を解析します。返された NameValueCollection場合、URL でエンコードされた文字がデコードされ、同じクエリ文字列パラメーターが複数回出現し、各値がコンマで区切られた 1 つのエントリとして一覧表示されます。

重要

このメソッドでは ParseQueryString 、潜在的なセキュリティ上の脅威であるユーザー入力を含む可能性のあるクエリ文字列を使用します。 既定では、ASP.NET Web ページによって、ユーザー入力にスクリプトまたは HTML 要素が含まれていないかどうかが検証されます。 詳細については、「スクリプトによる攻略の概要」を参照してください。

こちらもご覧ください

適用対象

ParseQueryString(String, Encoding)

指定した Encoding を使用してクエリ文字列を NameValueCollection に解析します。

public:
 static System::Collections::Specialized::NameValueCollection ^ ParseQueryString(System::String ^ query, System::Text::Encoding ^ encoding);
public static System.Collections.Specialized.NameValueCollection ParseQueryString (string query, System.Text.Encoding encoding);
static member ParseQueryString : string * System.Text.Encoding -> System.Collections.Specialized.NameValueCollection
Public Shared Function ParseQueryString (query As String, encoding As Encoding) As NameValueCollection

パラメーター

query
String

解析するクエリ文字列。

encoding
Encoding

使用する Encoding

戻り値

NameValueCollection

クエリ パラメーターと値の NameValueCollection

例外

querynullです。

または

encodingnullです。

注釈

返された NameValueCollectionURL でエンコードされた文字はデコードされ、同じクエリ文字列パラメーターが複数回出現すると、各値がコンマで区切られた 1 つのエントリとして一覧表示されます。

重要

このメソッドでは ParseQueryString 、潜在的なセキュリティ上の脅威であるユーザー入力を含む可能性のあるクエリ文字列を使用します。 既定では、ASP.NET Web ページによって、ユーザー入力にスクリプトまたは HTML 要素が含まれていないかどうかが検証されます。 詳細については、「スクリプトによる攻略の概要」を参照してください。

こちらもご覧ください

適用対象