7 out of 15 rated this helpful - Rate this topic

HttpRequest Class

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

System.Object
  System.Web.HttpRequest

Namespace:  System.Web
Assembly:  System.Web (in System.Web.dll)
public sealed class HttpRequest

The HttpRequest type exposes the following members.

  Name Description
Public method HttpRequest Infrastructure. Initializes an HttpRequest object.
Top
  Name Description
Public property AcceptTypes Gets a string array of client-supported MIME accept types.
Public property AnonymousID Gets the anonymous identifier for the user, if present.
Public property ApplicationPath Gets the ASP.NET application's virtual application root path on the server.
Public property AppRelativeCurrentExecutionFilePath Gets 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 property Browser Gets or sets information about the requesting client's browser capabilities.
Public property ClientCertificate Gets the current request's client security certificate.
Public property ContentEncoding Gets or sets the character set of the entity-body.
Public property ContentLength Specifies the length, in bytes, of content sent by the client.
Public property ContentType Gets or sets the MIME content type of the incoming request.
Public property Cookies Gets a collection of cookies sent by the client.
Public property CurrentExecutionFilePath Gets the virtual path of the current request.
Public property CurrentExecutionFilePathExtension Gets the extension of the file name that is specified in the CurrentExecutionFilePath property.
Public property FilePath Gets the virtual path of the current request.
Public property Files Gets the collection of files uploaded by the client, in multipart MIME format.
Public property Filter Gets or sets the filter to use when reading the current input stream.
Public property Form Gets a collection of form variables.
Public property Headers Gets a collection of HTTP headers.
Public property HttpChannelBinding Gets the ChannelBinding object of the current HttpWorkerRequest instance.
Public property HttpMethod Gets the HTTP data transfer method (such as GET, POST, or HEAD) used by the client.
Public property InputStream Gets the contents of the incoming HTTP entity body.
Public property IsAuthenticated Gets a value indicating whether the request has been authenticated.
Public property IsLocal Gets a value indicating whether the request is from the local computer.
Public property IsSecureConnection Gets a value indicating whether the HTTP connection uses secure sockets (that is, HTTPS).
Public property Item Gets the specified object from the QueryString, Form, Cookies, or ServerVariables collections.
Public property LogonUserIdentity Gets the WindowsIdentity type for the current user.
Public property Params Gets a combined collection of QueryString, Form, Cookies, and ServerVariables items.
Public property Path Gets the virtual path of the current request.
Public property PathInfo Gets additional path information for a resource with a URL extension.
Public property PhysicalApplicationPath Gets the physical file system path of the currently executing server application's root directory.
Public property PhysicalPath Gets the physical file system path corresponding to the requested URL.
Public property QueryString Gets the collection of HTTP query string variables.
Public property RawUrl Gets the raw URL of the current request.
Public property RequestContext Gets the RequestContext instance of the current request.
Public property RequestType Gets or sets the HTTP data transfer method (GET or POST) used by the client.
Public property ServerVariables Gets a collection of Web server variables.
Public property TotalBytes Gets the number of bytes in the current input stream.
Public property Url Gets information about the URL of the current request.
Public property UrlReferrer Gets information about the URL of the client's previous request that linked to the current URL.
Public property UserAgent Gets the raw user agent string of the client browser.
Public property UserHostAddress Gets the IP host address of the remote client.
Public property UserHostName Gets the DNS name of the remote client.
Public property UserLanguages Gets a sorted string array of client language preferences.
Top
  Name Description
Public method BinaryRead Performs a binary read of a specified number of bytes from the current input stream.
Public method Equals(Object) Determines whether the specified Object is equal to the current Object. (Inherited from Object.)
Protected method Finalize Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.)
Public method GetBufferlessInputStream Gets a Stream object that can be used to read the incoming HTTP entity body.
Public method GetHashCode Serves as a hash function for a particular type. (Inherited from Object.)
Public method GetType Gets the Type of the current instance. (Inherited from Object.)
Public method InsertEntityBody() Provides IIS with a copy of the HTTP request entity body.
Public method InsertEntityBody(Byte[], Int32, Int32) Provides IIS with a copy of the HTTP request entity body and with information about the request entity object.
Public method MapImageCoordinates Maps an incoming image-field form parameter to appropriate x-coordinate and y-coordinate values.
Public method MapPath(String) Maps the specified virtual path to a physical path.
Public method MapPath(String, String, Boolean) Maps the specified virtual path to a physical path.
Protected method MemberwiseClone Creates a shallow copy of the current Object. (Inherited from Object.)
Public method SaveAs Saves an HTTP request to disk.
Public method ToString Returns a string that represents the current object. (Inherited from Object.)
Public method ValidateInput Causes validation to occur for the collections accessed through the Cookies, Form, and QueryString properties.
Top

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

Note Note

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

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 note Security 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"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<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);

        try
        {
            // Write request information to the file with HTML encoding.
            sw.WriteLine(Server.HtmlEncode(DateTime.Now.ToString()));
            sw.WriteLine(Server.HtmlEncode(Request.CurrentExecutionFilePath));
            sw.WriteLine(Server.HtmlEncode(Request.ApplicationPath));
            sw.WriteLine(Server.HtmlEncode(Request.FilePath));
            sw.WriteLine(Server.HtmlEncode(Request.Path));

            // 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.");
            }
            else
            {
                sw.WriteLine(Server.HtmlEncode(Request.PathInfo));
            }

            // Write request information to the file with HTML encoding.
            sw.WriteLine(Server.HtmlEncode(Request.PhysicalApplicationPath));
            sw.WriteLine(Server.HtmlEncode(Request.PhysicalPath));
            sw.WriteLine(Server.HtmlEncode(Request.RawUrl));

            // 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");
            }
            else
            {
                sw.WriteLine("The request is less than 1KB");
            }

            // Write request information to the file with HTML encoding.
            sw.WriteLine(Server.HtmlEncode(Request.RequestType));
            sw.WriteLine(Server.HtmlEncode(Request.UserHostAddress));
            sw.WriteLine(Server.HtmlEncode(Request.UserHostName));
            sw.WriteLine(Server.HtmlEncode(Request.HttpMethod));

            // 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]));
            }
       }

       finally
       {
            // Close the stream to the file.
            sw.Close();
       }

        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.";
    }

</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>ASP.NET Example</title>
</head>
<body>
    <form id="form1" runat="server">
        <p>
        </p>
        <p>
            Enter your name here:
            <asp:TextBox id="txtBoxName" runat="server"></asp:TextBox>
        </p>
        <p>
            <asp:Button id="btnSendInfo" onclick="btnSendInfo_Click" runat="server" Text="Click Here"></asp:Button>
        </p>
        <p>
            <asp:Label id="lblInfoSent" runat="server"></asp:Label>
        </p>
    </form>
</body>
</html>


.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.
Did you find this helpful?
(1500 characters remaining)
Community Content Add
Annotations FAQ