This documentation is archived and is not being maintained.

HttpRequest Class

Enables ASP.NET to read the HTTP values sent by a client during a Web request.


Namespace:  System.Web
Assembly:  System.Web (in System.Web.dll)

public sealed class HttpRequest

The HttpRequest type exposes the following members.

Public methodHttpRequestInfrastructure. Initializes an HttpRequest object.

Public propertyAcceptTypesGets a string array of client-supported MIME accept types.
Public propertyAnonymousIDGets the anonymous identifier for the user, if present.
Public propertyApplicationPathGets the ASP.NET application's virtual application root path on the server.
Public propertyAppRelativeCurrentExecutionFilePathGets the virtual path of the application root and makes it relative by using the tilde (~) notation for the application root (as in "~/page.aspx").
Public propertyBrowserGets or sets information about the requesting client's browser capabilities.
Public propertyClientCertificateGets the current request's client security certificate.
Public propertyContentEncodingGets or sets the character set of the entity-body.
Public propertyContentLengthSpecifies the length, in bytes, of content sent by the client.
Public propertyContentTypeGets or sets the MIME content type of the incoming request.
Public propertyCookiesGets a collection of cookies sent by the client.
Public propertyCurrentExecutionFilePathGets the virtual path of the current request.
Public propertyCurrentExecutionFilePathExtensionGets the extension of the file name that is specified in the CurrentExecutionFilePath property.
Public propertyFilePathGets the virtual path of the current request.
Public propertyFilesGets the collection of files uploaded by the client, in multipart MIME format.
Public propertyFilterGets or sets the filter to use when reading the current input stream.
Public propertyFormGets a collection of form variables.
Public propertyHeadersGets a collection of HTTP headers.
Public propertyHttpChannelBindingGets the ChannelBinding object of the current HttpWorkerRequest instance.
Public propertyHttpMethodGets the HTTP data transfer method (such as GET, POST, or HEAD) used by the client.
Public propertyInputStreamGets the contents of the incoming HTTP entity body.
Public propertyIsAuthenticatedGets a value indicating whether the request has been authenticated.
Public propertyIsLocalGets a value indicating whether the request is from the local computer.
Public propertyIsSecureConnectionGets a value indicating whether the HTTP connection uses secure sockets (that is, HTTPS).
Public propertyItemGets the specified object from the QueryString, Form, Cookies, or ServerVariables collections.
Public propertyLogonUserIdentityGets the WindowsIdentity type for the current user.
Public propertyParamsGets a combined collection of QueryString, Form, Cookies, and ServerVariables items.
Public propertyPathGets the virtual path of the current request.
Public propertyPathInfoGets additional path information for a resource with a URL extension.
Public propertyPhysicalApplicationPathGets the physical file system path of the currently executing server application's root directory.
Public propertyPhysicalPathGets the physical file system path corresponding to the requested URL.
Public propertyQueryStringGets the collection of HTTP query string variables.
Public propertyRawUrlGets the raw URL of the current request.
Public propertyRequestContextGets the RequestContext instance of the current request.
Public propertyRequestTypeGets or sets the HTTP data transfer method (GET or POST) used by the client.
Public propertyServerVariablesGets a collection of Web server variables.
Public propertyTotalBytesGets the number of bytes in the current input stream.
Public propertyUrlGets information about the URL of the current request.
Public propertyUrlReferrerGets information about the URL of the client's previous request that linked to the current URL.
Public propertyUserAgentGets the raw user agent string of the client browser.
Public propertyUserHostAddressGets the IP host address of the remote client.
Public propertyUserHostNameGets the DNS name of the remote client.
Public propertyUserLanguagesGets a sorted string array of client language preferences.

Public methodBinaryReadPerforms a binary read of a specified number of bytes from the current input stream.
Public methodEquals(Object)Determines whether the specified Object is equal to the current Object. (Inherited from Object.)
Protected methodFinalizeAllows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.)
Public methodGetBufferlessInputStreamGets a Stream object that can be used to read the incoming HTTP entity body.
Public methodGetHashCodeServes as a hash function for a particular type. (Inherited from Object.)
Public methodGetTypeGets the Type of the current instance. (Inherited from Object.)
Public methodInsertEntityBody()Provides IIS with a copy of the HTTP request entity body.
Public methodInsertEntityBody(Byte[], Int32, Int32)Provides IIS with a copy of the HTTP request entity body and with information about the request entity object.
Public methodMapImageCoordinatesMaps an incoming image-field form parameter to appropriate x-coordinate and y-coordinate values.
Public methodMapPath(String)Maps the specified virtual path to a physical path.
Public methodMapPath(String, String, Boolean)Maps the specified virtual path to a physical path.
Protected methodMemberwiseCloneCreates a shallow copy of the current Object. (Inherited from Object.)
Public methodSaveAsSaves an HTTP request to disk.
Public methodToStringReturns a string that represents the current object. (Inherited from Object.)
Public methodValidateInputCauses validation to occur for the collections accessed through the Cookies, Form, and QueryString properties.

The methods and properties of the HttpRequest class are exposed through the Request properties of the HttpApplication, HttpContext, Page, and UserControl classes.


Unicode support for HttpRequest class members requires IIS version 6.0 or later.

How to: Pass Values Between ASP.NET Web PagesBuilding ASP .NET Web Applications
How to: Pass Values Between ASP.NET Web PagesBuilding ASP .NET Web Applications

A Visual Studio Web site project with source code is available to accompany this topic: Download.

The following example uses the StreamWriter class to write the values of several HttpRequest class properties to a file. For properties that are of type string, the values are HTML encoded as they are written to the file. Properties that represent a collection are looped through, and each key/value pair that they contain is written to the file. In ASP.NET markup, the Request keyword refers to the HttpRequest object.

Security noteSecurity Note

This example has a text box that accepts user input, which is a potential security threat. By default, ASP.NET Web pages validate that user input does not include script or HTML elements. For more information, see Script Exploits Overview.

<%@ Page Language="C#" %>
<%@ import Namespace="System.Threading" %>
<%@ import Namespace="System.IO" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
<script runat="server">

    /* NOTE: To use this sample, create a c:\temp\CS folder,
    *  add the ASP.NET account (in IIS 5.x <machinename>\ASPNET,
    *  in IIS 6.x NETWORK SERVICE), and give it write permissions
    *  to the folder.*/

    private const string INFO_DIR = @"c:\temp\CS\RequestDetails";
    public static int requestCount;

    private void Page_Load(object sender, System.EventArgs e)

        // Create a variable to use when iterating
        // through the UserLanguages property.
        int langCount;

        int requestNumber = Interlocked.Increment(ref requestCount);

        // Create the file to contain information about the request.
        string strFilePath = INFO_DIR + requestNumber.ToString() + @".txt";

        StreamWriter sw = File.CreateText(strFilePath);

            // Write request information to the file with HTML encoding.

            // Iterate through the Form collection and write
            // the values to the file with HTML encoding.
            // String[] formArray = Request.Form.AllKeys;
            foreach (string s in Request.Form)
                sw.WriteLine("Form: " + Server.HtmlEncode(s));

            // Write the PathInfo property value
            // or a string if it is empty.
            if (Request.PathInfo == String.Empty)
                sw.WriteLine("The PathInfo property contains no information.");

            // Write request information to the file with HTML encoding.

            // Write a message to the file dependent upon
            // the value of the TotalBytes property.
            if (Request.TotalBytes > 1000)
                sw.WriteLine("The request is 1KB or greater");
                sw.WriteLine("The request is less than 1KB");

            // Write request information to the file with HTML encoding.

            // Iterate through the UserLanguages collection and
            // write its HTML encoded values to the file.
            for (langCount=0; langCount < Request.UserLanguages.Length; langCount++)
                sw.WriteLine(@"User Language " + langCount +": " + Server.HtmlEncode(Request.UserLanguages[langCount]));

            // Close the stream to the file.

        lblInfoSent.Text = "Information about this request has been sent to a file.";

    private void btnSendInfo_Click(object sender, System.EventArgs e)
        lblInfoSent.Text = "Hello, " + Server.HtmlEncode(txtBoxName.Text) +
          ". You have created a new  request info file.";

<html xmlns="" >
    <title>ASP.NET Example</title>
    <form id="form1" runat="server">
            Enter your name here:
            <asp:TextBox id="txtBoxName" runat="server"></asp:TextBox>
            <asp:Button id="btnSendInfo" onclick="btnSendInfo_Click" runat="server" Text="Click Here"></asp:Button>
            <asp:Label id="lblInfoSent" runat="server"></asp:Label>

.NET Framework

Supported in: 4, 3.5, 3.0, 2.0, 1.1, 1.0

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.