Поделиться через


HttpUtility Класс

Определение

Предоставляет методы для кодирования и декодирования URL-адресов при обработке веб-запросов. Этот класс не наследуется.

public ref class HttpUtility sealed
public sealed class HttpUtility
type HttpUtility = class
Public NotInheritable Class HttpUtility
Наследование
HttpUtility

Примеры

В следующем примере кода показано использование UrlEncodeметодов HttpUtility , UrlDecode и ParseQueryString класса .

<%@ 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();
        foreach (String s in qscoll.AllKeys)
        {
            sb.Append(s + " - " + qscoll[s] + "<br />");
        }

        // Write the results to the appropriate labels.
        ParseOutput.Text = sb.ToString();
        UrlRawOutput.Text = currurl;
        UrlEncodedOutput.Text = HttpUtility.UrlEncode(currurl);
        UrlDecodedOutput.Text = HttpUtility.UrlDecode(currurl);
    }
</script>


<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>HttpUtility Example</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
      The raw url is: <br />
      <asp:Label  id="UrlRawOutput"
                  runat="server" />
      <br /><br />
      The url encoded is: <br />
      <asp:Label  id="UrlEncodedOutput"
                  runat="server" />
      <br /><br />
      The url decoded is: <br />
      <asp:Label  id="UrlDecodedOutput"
                  runat="server" />
      <br /><br />
      The query string NameValueCollection is: <br />
      <asp:Label  id="ParseOutput"
                  runat="server" />
    </div>
    </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()
        For Each s As String In qscoll.AllKeys
      
            sb.Append(s & " - " & qscoll(s) & "<br />")
    
        Next s
    
        ' Write the results to the appropriate labels.
        ParseOutput.Text = sb.ToString()
        UrlRawOutput.Text = currurl
        UrlEncodedOutput.Text = HttpUtility.UrlEncode(currurl)
        UrlDecodedOutput.Text = HttpUtility.UrlDecode(currurl)
   
    End Sub
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>HttpUtility Example</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
      The raw url is: <br />
      <asp:Label  id="UrlRawOutput"
                  runat="server" />
      <br /><br />
      The url encoded is: <br />
      <asp:Label  id="UrlEncodedOutput"
                  runat="server" />
      <br /><br />
      The url decoded is: <br />
      <asp:Label  id="UrlDecodedOutput"
                  runat="server" />
      <br /><br />
      The query string NameValueCollection is: <br />
      <asp:Label  id="ParseOutput"
                  runat="server" />    
    </div>
    </form>
</body>
</html>

Комментарии

Класс HttpUtility используется внутри HttpServerUtility класса , методы и свойства которого предоставляются через встроенный объект ASP.NET Server . Кроме того, HttpUtility класс содержит служебные методы кодирования и декодирования, недоступные Serverиз .

Чтобы кодировать или декодировать значения вне веб-приложения, используйте класс WebUtility.

Конструкторы

HttpUtility()

Инициализирует новый экземпляр класса HttpUtility.

Методы

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
HtmlAttributeEncode(String)

Минимально преобразует строку в строку в формате HTML.

HtmlAttributeEncode(String, TextWriter)

Минимально преобразует строку в строку в кодировке HTML и отправляет кодированную строку в выходной поток TextWriter.

HtmlDecode(String)

Преобразует строку, преобразованную в кодировку HTML для передачи по протоколу HTTP, в декодированную строку.

HtmlDecode(String, TextWriter)

Преобразует строку в формате HTML в декодированную строку и отправляет декодированную строку в выходной поток TextWriter.

HtmlEncode(Object)

Преобразует строковое представление объекта в HTML-кодированную строку и возвращает закодированную строку.

HtmlEncode(String)

Преобразует строку в строку в кодировке HTML.

HtmlEncode(String, TextWriter)

Преобразует строку в строку в кодировке HTML и возвращает выходные данные в виде потока выходных данных TextWriter.

JavaScriptStringEncode(String)

Кодирует строку.

JavaScriptStringEncode(String, Boolean)

Кодирует строку.

MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
ParseQueryString(String)

Преобразует строку запроса в NameValueCollection с использованием кодировки UTF8.

ParseQueryString(String, Encoding)

Преобразует строку запроса в NameValueCollection с использованием указанного Encoding.

ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)
UrlDecode(Byte[], Encoding)

Преобразует массив байтов в кодировке URL в декодированную строку с помощью указанного объекта декодирования.

UrlDecode(Byte[], Int32, Int32, Encoding)

Преобразует массив байтов в URL-кодировке в декодированную строку с помощью указанного объекта кодирования, начиная с указанной позиции в массиве и до указанного числа байтов.

UrlDecode(String)

Преобразует строку, закодированную для передачи в URL-адресе, в декодированную строку.

UrlDecode(String, Encoding)

Преобразует строку в кодировке URL в декодированную строку с помощью указанного объекта кодирования.

UrlDecodeToBytes(Byte[])

Преобразует массив байтов в URL-кодировке в декодированный массив байтов.

UrlDecodeToBytes(Byte[], Int32, Int32)

Преобразует массив байтов в URL-кодировке в декодированный массив байтов, начиная с указанной позиции в массиве и до указанного количества байтов.

UrlDecodeToBytes(String)

Преобразует строку в кодировке URL в декодированный массив байтов.

UrlDecodeToBytes(String, Encoding)

Преобразует строку в кодировке URL в декодированный массив байтов с помощью указанного объекта декодирования.

UrlEncode(Byte[])

Преобразует массив байтов в закодированную строку URL-адреса.

UrlEncode(Byte[], Int32, Int32)

Преобразует массив байтов в строку URL-кодировки, начиная с указанной позиции в массиве и до указанного количества числа байтов.

UrlEncode(String)

Кодирует строку URL-адреса.

UrlEncode(String, Encoding)

Кодирует строку URL-адреса, используя указанный объект кодирования.

UrlEncodeToBytes(Byte[])

Преобразует массив байтов в массив байтов в URL-кодировке.

UrlEncodeToBytes(Byte[], Int32, Int32)

Преобразует массив байтов в массив байтов в URL-кодировке, начиная с указанной позиции в массиве и до указанного количества байтов.

UrlEncodeToBytes(String)

Преобразует строку в кодировке URL в массив байтов.

UrlEncodeToBytes(String, Encoding)

Преобразует строку в массив байтов в кодировке URL-адреса с использованием указанного объекта кодирования.

UrlEncodeUnicode(String)
Устаревшие..

Преобразует строку в строку Юникода.

UrlEncodeUnicodeToBytes(String)
Устаревшие..

Преобразует строку Юникода в массив байтов.

UrlPathEncode(String)

Не использовать; предназначено исключительно для совместимости браузеров. Используйте ключевое слово UrlEncode(String).

Применяется к

См. также раздел