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


HttpResponse Класс

Определение

Инкапсулирует данные ответа HTTP, полученные при выполнении операции ASP.NET.

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

Примеры

В следующем примере рисуются три перекрывающихся прямоугольника при запросе страницы. Код начинается с присвоения свойству ContentType значения image/jpeg, чтобы вся страница отображалась как изображение в формате JPEG. Затем код вызывает Clear метод , чтобы убедиться, что с этим ответом не отправляется постороннее содержимое. Затем код задает BufferOutput для свойства значение true, чтобы страница была полностью обработана перед отправкой запрашивающего клиента. Затем создаются два объекта, используемых для рисования прямоугольников: и BitmapGraphics объект . Переменные, созданные на странице, используются в качестве координат для рисования прямоугольников и строки, которая отображается внутри самого большого прямоугольника.

При рисовании трех прямоугольников и строки, которая отображается внутри них, объект сохраняется в Stream объекте, Bitmap связанном со свойством OutputStream , и для его формата устанавливается значение JPEG. Код вызывает Dispose методы и Dispose для освобождения ресурсов, используемых двумя объектами рисования. Наконец, код вызывает Flush метод для отправки буферизованного ответа запрашивающего клиента.

Примечание

В коде на HttpResponse объект ссылается ключевое слово Response. Например, Response.Clear() ссылается на HttpResponse.Clear метод . Класс Page имеет свойство с именем Response , которое предоставляет текущий HttpResponseэкземпляр .

<%@ Page Language="C#" %>
<%@ import Namespace="System.Drawing" %>
<%@ import Namespace="System.Drawing.Imaging" %>
<%@ import Namespace="System.Drawing.Drawing2D" %>

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

    private void Page_Load(object sender, EventArgs e)
    {
// <snippet2>
        // Set the page's content type to JPEG files
        // and clears all content output from the buffer stream.
        Response.ContentType = "image/jpeg";
        Response.Clear();
    
        // Buffer response so that page is sent
        // after processing is complete.
        Response.BufferOutput = true;
// </snippet2>
    
        // Create a font style.
        Font rectangleFont = new Font(
            "Arial", 10, FontStyle.Bold);
    
        // Create integer variables.
        int height = 100;
        int width = 200;
    
        // Create a random number generator and create
        // variable values based on it.
        Random r = new Random();
        int x = r.Next(75);
        int a = r.Next(155);
        int x1 = r.Next(100);
    
        // Create a bitmap and use it to create a
        // Graphics object.
        Bitmap bmp = new Bitmap(
            width, height, PixelFormat.Format24bppRgb);
        Graphics g = Graphics.FromImage(bmp);
    
        g.SmoothingMode = SmoothingMode.AntiAlias;
        g.Clear(Color.LightGray);
    
        // Use the Graphics object to draw three rectangles.
        g.DrawRectangle(Pens.White, 1, 1, width-3, height-3);
        g.DrawRectangle(Pens.Aquamarine, 2, 2, width-3, height-3);
        g.DrawRectangle(Pens.Black, 0, 0, width, height);
    
        // Use the Graphics object to write a string
        // on the rectangles.
        g.DrawString(
            "ASP.NET Samples", rectangleFont,
            SystemBrushes.WindowText, new PointF(10, 40));
    
        // Apply color to two of the rectangles.
        g.FillRectangle(
            new SolidBrush(
                Color.FromArgb(a, 255, 128, 255)),
            x, 20, 100, 50);
    
        g.FillRectangle(
            new LinearGradientBrush(
                new Point(x, 10),
                new Point(x1 + 75, 50 + 30),
                Color.FromArgb(128, 0, 0, 128),
                Color.FromArgb(255, 255, 255, 240)),
            x1, 50, 75, 30);

// <snippet3>    
        // Save the bitmap to the response stream and
        // convert it to JPEG format.
        bmp.Save(Response.OutputStream, ImageFormat.Jpeg);
    
        // Release memory used by the Graphics object
        // and the bitmap.
        g.Dispose();
        bmp.Dispose();
    
        // Send the output to the client.
        Response.Flush();
// </snippet3>
    }

</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>ASP.NET Example</title>
</head>
<body>
    <form id="form1" runat="server">
    </form>
</body>
</html>
<%@ Page Language="VB" %>
<%@ import Namespace="System.Drawing" %>
<%@ import Namespace="System.Drawing.Imaging" %>
<%@ import Namespace="System.Drawing.Drawing2D" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

   Private Sub Page_Load(sender As Object, e As EventArgs)
' <snippet2>
      ' Set the page's content type to JPEG files
      ' and clears all content output from the buffer stream.
      Response.ContentType = "image/jpeg"
      Response.Clear()
      
      ' Buffer response so that page is sent
      ' after processing is complete.
      Response.BufferOutput = True
' </snippet2>
      
      ' Create a font style.
      Dim rectangleFont As New Font( _
          "Arial", 10, FontStyle.Bold)
      
      ' Create integer variables.
      Dim height As Integer = 100
      Dim width As Integer = 200
      
      ' Create a random number generator and create
      ' variable values based on it.
      Dim r As New Random()
      Dim x As Integer = r.Next(75)
      Dim a As Integer = r.Next(155)
      Dim x1 As Integer = r.Next(100)
      
      ' Create a bitmap and use it to create a
      ' Graphics object.
      Dim bmp As New Bitmap( _
          width, height, PixelFormat.Format24bppRgb)
      Dim g As Graphics = Graphics.FromImage(bmp)
      
      g.SmoothingMode = SmoothingMode.AntiAlias
      g.Clear(Color.LightGray)
      
      ' Use the Graphics object to draw three rectangles.
      g.DrawRectangle(Pens.White, 1, 1, width - 3, height - 3)
      g.DrawRectangle(Pens.Aquamarine, 2, 2, width - 3, height - 3)
      g.DrawRectangle(Pens.Black, 0, 0, width, height)
      
      ' Use the Graphics object to write a string
      ' on the rectangles.
      g.DrawString("ASP.NET Samples", rectangleFont, SystemBrushes.WindowText, New PointF(10, 40))
      
      ' Apply color to two of the rectangles.
      g.FillRectangle( _
          New SolidBrush( _
              Color.FromArgb(a, 255, 128, 255)), _
          x, 20, 100, 50)
      
      g.FillRectangle( _
          New LinearGradientBrush( _
              New Point(x, 10), _
              New Point(x1 + 75, 50 + 30), _
              Color.FromArgb(128, 0, 0, 128), _
              Color.FromArgb(255, 255, 255, 240)), _
          x1, 50, 75, 30)

' <snippet3>      
      ' Save the bitmap to the response stream and
      ' convert it to JPEG format.
      bmp.Save(Response.OutputStream, ImageFormat.Jpeg)
      
      ' Release memory used by the Graphics object
      ' and the bitmap.
      g.Dispose()
      bmp.Dispose()
      
      ' Send the output to the client.
      Response.Flush()
' </snippet3>
   End Sub 'Page_Load

</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>ASP.NET Example</title>
</head>
<body>
    <form id="form1" runat="server">
    </form>
</body>
</html>

Комментарии

Методы и свойства HttpResponse класса предоставляются через Response свойство HttpApplicationклассов , HttpContext, Pageи UserControl .

Следующие методы класса поддерживаются только в сценариях обратной HttpResponse передачи, но не в асинхронных сценариях обратной передачи.

Частичные обновления страницы включаются при использовании UpdatePanel элементов управления для обновления выбранных областей страницы вместо обновления всей страницы с обратной записью. Дополнительные сведения см. в разделах Обзор элемента управления UpdatePanel и Обзор частичной отрисовки страницы.

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

HttpResponse(TextWriter)

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

Свойства

Buffer

Получает или задает значение, указывающее, следует ли помещать выходные данные в буфер для отправки с последующей отправкой после завершения обработки ответа.

BufferOutput

Получает или задает значение, указывающее, следует ли помещать выходные данные в буфер для отправки с последующей отправкой после завершения обработки страницы.

Cache

Получает политику кэширования веб-страницы (например, срок действия, параметры конфиденциальности и изменяемые предложения).

CacheControl

Получает или задает заголовок HTTP Cache-Control, который совпадает с одним из значений перечисления HttpCacheability.

Charset

Получает или задает кодировку НТТР для потока вывода.

ClientDisconnectedToken

Получает объект CancellationToken, задействуемый при отключении клиента.

ContentEncoding

Получает или задает кодировку НТТР для потока вывода.

ContentType

Получает или задает тип формата MIME НТТР потока вывода.

Cookies

Получает коллекцию файлов сookie ответов.

Expires

Получает или задает число минут перед тем, как истечет срок действия страницы, сохраненной в кэше браузера. Если пользователь возвращается к той же странице до момента истечения срока действия, будет отображена кэшированная версия. Свойство Expires обеспечивает совместимость с предыдущими версиями ASP.

ExpiresAbsolute

Получает или задает абсолютную дату и время удаления кэшированных сведений из кэша. Свойство ExpiresAbsolute обеспечивает совместимость с предыдущими версиями ASP.

Filter

Получает или задает объект фильтра обертки, используемый для изменения тела элемента НТТР перед началом передачи.

HeaderEncoding

Получает или задает объект Encoding, который представляет кодирование для потока вывода текущего заголовка.

Headers

Получает коллекцию заголовков ответа.

HeadersWritten

Получает значение, указывающее, были ли записаны заголовки ответа.

IsClientConnected

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

IsRequestBeingRedirected

Получает логическое значение, указывающее изменение расположения клиента.

Output

Разрешает выводить текст в исходящем потоке ответа НТТР.

OutputStream

Разрешает вывод двоичных данных в теле исходящего содержимого НТТР.

RedirectLocation

Возвращает или задает значение HTTP-заголовка Location.

Status

Задает строку Status, возвращаемую клиенту.

StatusCode

Получает или задает код состояния НТТР вывода, возвращаемого клиенту.

StatusDescription

Получает или задает строку состояния НТТР вывода, возвращаемого клиенту.

SubStatusCode

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

SupportsAsyncFlush

Получает значение, указывающее, поддерживает ли подключение асинхронные операции очистки.

SuppressContent

Получает или задает значение, показывающее, следует ли отправить содержимое НТТР клиенту.

SuppressDefaultCacheControlHeader

Возвращает или задает значение, указывающее, следует ли подавлять заголовок по умолчанию Cache Control: private для текущего HTTP-ответа.

SuppressFormsAuthenticationRedirect

Получает или задает значение, указывающее, следует ли отключить перенаправление аутентификации с помощью форм на страницу входа.

TrySkipIisCustomErrors

Возвращает или задает значение, указывающее, отключены ли пользовательские ошибки IIS 7.0.

Методы

AddCacheDependency(CacheDependency[])

Связывает набор зависимостей кэша с ответом, чтобы упростить переход ответа в недействительное состояние, если он хранится в выходном кэше и указанные зависимости изменяются.

AddCacheItemDependencies(ArrayList)

Ставит допустимость кэшированного ответа в зависимость от других элементов кэша.

AddCacheItemDependencies(String[])

Ставит допустимость кэшированного элемента в зависимость от других элементов кэша.

AddCacheItemDependency(String)

Ставит допустимость кэшированного ответа в зависимость от другого элемента кэша.

AddFileDependencies(ArrayList)

Добавляет группу имен файлов в коллекцию имен файлов, от которой зависит текущий ответ.

AddFileDependencies(String[])

Добавляет массив имен файлов в коллекцию имен файлов, от которой зависит текущий ответ.

AddFileDependency(String)

Добавляет имя файла в коллекцию имен файлов, от которой зависит текущий ответ.

AddHeader(String, String)

Добавляет заголовок НТТР в поток вывода. Свойство AddHeader(String, String) обеспечивает совместимость с предыдущими версиями ASP.

AddOnSendingHeaders(Action<HttpContext>)

Регистрирует обратный вызов, который среда выполнения ASP.NET будет вызывать непосредственно перед отправкой заголовков ответа для этого запроса.

AppendCookie(HttpCookie)

Добавляет файл Cookie HTTP во встроенную коллекцию файлов Cookie.

AppendHeader(String, String)

Добавляет заголовок НТТР в поток вывода.

AppendToLog(String)

Добавляет данные пользовательского журнала в файл журнала IIS.

ApplyAppPathModifier(String)

Добавляет идентификатор сеанса в виртуальный путь, если сеанс использует свойство Cookieless для указания собственного состояния, и возвращает объединенный путь. Если задаваемое свойством Cookieless состояние сеанса не используется, то метод ApplyAppPathModifier(String) возвращает исходный виртуальный путь.

BeginFlush(AsyncCallback, Object)

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

BinaryWrite(Byte[])

Записывает строку двоичных символов в поток вывода НТТР.

Clear()

Удаляет все содержимое вывода из потока буфера.

ClearContent()

Удаляет все содержимое вывода из потока буфера.

ClearHeaders()

Удаляет все заголовки из потока буфера.

Close()

Закрывает соединение с клиентом по данному сокету.

DisableKernelCache()

Запрещает кэширование ядра для текущего ответа.

DisableUserCache()

Отключает кэширование IIS в пользовательском режиме для этого ответа.

End()

Отправляет клиенту все выходные данные, находящиеся в данный момент в буфере, прекращает выполнение страницы и создает событие EndRequest.

EndFlush(IAsyncResult)

Завершает асинхронную операцию очистки.

Equals(Object)

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

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

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

FlushAsync()

Асинхронно отправляет клиенту все выходные данные, находящиеся в настоящий момент в буфере.

GetHashCode()

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

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

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

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

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

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

Добавляет заголовок PICS-Label HTTP в поток вывода.

PushPromise(String)

Предназначен для поддержки приложений, принудительно отправляющих обещания клиентам HTTP 2.0. Дополнительные сведения см. в спецификации HTTP/2, раздел 8.2: отправка с сервера.

PushPromise(String, String, NameValueCollection)

Предназначен для поддержки приложений, принудительно отправляющих обещания клиентам HTTP 2.0. Дополнительные сведения см. в спецификации HTTP/2, раздел 8.2: отправка с сервера.

Redirect(String)

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

Redirect(String, Boolean)

Перенаправляет клиента на новый URL-адрес. Задает новый URL-адрес и условия прекращения выполнения текущей страницы.

RedirectPermanent(String)

Выполняет безвозвратное перенаправление с запрошенного URL-адреса на заданный URL-адрес.

RedirectPermanent(String, Boolean)

Выполняет безвозвратное перенаправление с запрошенного URL-адреса на заданный URL-адрес и предоставляет возможность завершить ответ.

RedirectToRoute(Object)

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

RedirectToRoute(RouteValueDictionary)

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

RedirectToRoute(String)

Перенаправляет запрос на новый URL-адрес, используя имя маршрута.

RedirectToRoute(String, Object)

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

RedirectToRoute(String, RouteValueDictionary)

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

RedirectToRoutePermanent(Object)

Выполняет постоянное перенаправление запроса с запрошенного URL-адреса на новый URL-адрес, используя значения параметров маршрута.

RedirectToRoutePermanent(RouteValueDictionary)

Выполняет постоянное перенаправление запроса с запрошенного URL-адреса на новый URL-адрес, используя значения параметров маршрута.

RedirectToRoutePermanent(String)

Выполняет постоянное перенаправление с запрошенного URL-адреса на новый URL-адрес, используя имя маршрута.

RedirectToRoutePermanent(String, Object)

Выполняет постоянное перенаправление запроса с запрошенного URL-адреса на новый URL-адрес, используя значения параметров маршрута и имя маршрута, соответствующее новому URL-адресу.

RedirectToRoutePermanent(String, RouteValueDictionary)

Выполняет постоянное перенаправление запроса с запрошенного URL-адреса на новый URL-адрес, используя значения параметров маршрута и имя маршрута.

RemoveOutputCacheItem(String)

Удаляет из кэша все элементы, связанные с поставщиком кэша вывода по умолчанию. Это статический метод.

RemoveOutputCacheItem(String, String)

С помощью указанного поставщика кэша вывода удаляет из кэша вывода все элементы, связанные с указанным путем.

SetCookie(HttpCookie)

Так как метод HttpResponse.SetCookie предназначен только для внутреннего использования, его не следует вызывать в коде. Вместо этого можно вызвать метод HttpResponse.Cookies.Set, как показано в приведенном ниже примере.
Обновляет существующий файл cookie из коллекции данных файлов.

ToString()

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

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

Записывает указанный файл непосредственно в выходной поток ответа HTTP, не используя буфер в памяти.

TransmitFile(String, Int64, Int64)

Записывает указанную часть файла непосредственно в поток вывода ответа HTTP, не используя буфер в памяти.

Write(Char)

Записывает знак в поток вывода ответа НТТР.

Write(Char[], Int32, Int32)

Записывает массив символов в поток вывода ответа НТТР.

Write(Object)

Записывает объект Object в поток ответа HTTP.

Write(String)

Записывает строку в поток вывода ответа НТТР.

WriteFile(IntPtr, Int64, Int64)

Записывает указанный файл непосредственно в поток вывода ответа НТТР.

WriteFile(String)

Записывает содержимое указанного файла непосредственно в выходной поток ответа HTTP в виде блока файла.

WriteFile(String, Boolean)

Записывает содержимое указанного файла непосредственно в выходной поток ответа HTTP в виде блока памяти.

WriteFile(String, Int64, Int64)

Записывает указанный файл непосредственно в поток вывода ответа НТТР.

WriteSubstitution(HttpResponseSubstitutionCallback)

Позволяет выполнять вставку блоков замены ответа в ответ, что предоставляет возможность для динамического формирования указанных областей ответа для выходных кэшируемых ответов.

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