• .NET Request对象介绍


    Request对象用于检索从浏览器向服务器所发送的请求信息。它提供对当前页请求的访问,包括标题,Cookie,客户端证书等等。它也与HTTP协议的请求消息对应

    Request常用的属性

    属性  具体内容
     ApplicationPath  获取服务器上asp.net应用程序的虚拟应用程序根路径(自己文件相对于根目录的目录,如:"/")
    AppRelativeCurrentExecutionFilePath
    获取当前执行请求相对于应用程序的根目录的虚拟路径,以~开头,例如~/login.aspx
    PhysicalApplicationPath
    获取当前应用的物理路径。C:Userssource eposProject
     CurrentExecutionFilePath 获取当前请求的虚拟路径
     Path  获取当前请求的虚拟路径
     PathInfo 获取具有URL扩展名的资源的附加路径信息
    FilePath 获取当前请求的虚拟路径
    PhysicalPath 获取当前请求的物理路径。C:Userssource eposProjectlogin.aspx
    RawUrl 获取原始请求URL
    Url 获取请求URL
    UrlReferrer 网页来源对象,包含多个属性可以判断百度搜索关键词以及用来做防盗链
    UserHostAddress 获得访问者IP
    UserLanguages 获得访问者浏览器支持语言
    Cookies 获取浏览器请求的Cookie信息
    Browser 获取有关正在请求的客户端的浏览器功能的信息,该属性值为:HttpBrowserCapabilities对象
    ContentEncoding 获取或设置实体主体的字符集。该属性值为表示客户端的字符集Encoding对象
    ContentLength 指定客户端发送的内容长度,以字节为单位 
    ContentType 获取或设置传入请求的MIME内容类型。
    Files  获取客户端上载的文件集合。该属性值为HttpFileCollection对象,表示客户端上载的文件集合
    Form 获取窗体变量集合
    HttpMethod 获取客户端使用的HTTP数据传输方法(如:get、post或head)
     Item 获取Cookies、Form、QueryString或ServerVariables集合中指定的对象
    Params 获取Cookies、Form、QueryString或ServerVariables项的组合集合
    QueryString 获取HTTP查询字符串变量集合。该属性值为:NameValueCollection对象,它包含由客户端发送的查询字符串变量集合
    RequestType 获取或设置客户端使用HTTP数据传输的方式(get或post)
     ServerVariables 获取Web服务器变量的集合
    TotalBytes 获取当前输入流的字节数

    主要方法:

    (1)MapPath(VirtualPath):将当前请求的URL中的虚拟路径virtualPath映射到服务器上的物理路径。参数virtualPath指定当前请求的虚拟路径,可以是绝对路径或相对路径。该方法的返回值为由virtualPath指定的服务器物理路径。例如:MapPath("~/login.aspx") => C:Userssource eposProjectlogin.aspx

    (2)SaveAs (Filename,includeHeaders):将http请求保存到磁盘。参数filename指定物理驱动器路径,includeHeaders是一个布尔值,指定是否应将HTTP标头保存到磁盘。

    二、Request对象的应用

    1.读取窗体变量四种方式

    (1).使用Request.Form属性读取窗体变量
    (2).使用Request.QueryString属性读取窗体变量
    (3).使用Request.Params属性读取窗体变量
    (4).通过服务器控件的属性直接读取窗体变量

    (1).使用Request.Form属性读取窗体变量

    HtmlForm控件的Method属性的默认值为post。在这种情况下,当用户提交网页时,表单数据将以HTTP标头的形式发送到服务器端。此时,可以使用Request对象的Form属性来读取窗体变量。如:txtUserName和txtPassword的文本框控件,则可以通过以下形式来读取它们的值: Request.Form["txtUserName"] ;Request.Form["txtPassword"]

    (2)使用Request.QueryString属性读取窗体变量

    如果将HtmlForm控件的Method属性设置为get,则当用户提交网页时,表单数据将附加在网址后面发送到服务器端。在这种情况下,可以使用Request对象的QueryString属性读取窗体变量。Request.QueryString["txtUserName"] ;Request.QueryString["txtPassword"]

    (3)使用Request.Params属性读取窗体变量

    不论HtmlForm控件的Method属性取什么值,都可以使用Request对象的Params属性来读取窗体变量的内容,如Request.Params["txtPassword"]或者Request.["txtPassword"],优先获取GET方式提交的数据,它会在QueryString、Form、ServerVariable中都按先后顺序搜寻一遍。

    Request:包含以上两种方式(优先获取GET方式提交的数据),它会在QueryString、Form、ServerVariable中都按先后顺序搜寻一遍。Request.Params是所有post和get传过来的值的集合,request.params其实是一个集合,它依次包括request.QueryString、request.Form、request.cookies和request.ServerVariable。

    注意:当使用Request.Params的时候,这些集合项中最好不要有同名项。如果仅仅是需要Form中的一个数据,但却使用了Request而不是Request.Form,那么程序将在QueryString、ServerVariable中也搜寻一遍。如果正好QueryString或者ServerVariable里面也有同名的项,那么得到的就不是想要的值了。

    (4)通过服务器控件的属性直接读取窗体变量

    除了以上3种方式之外,也可以通过服务器控件的属性来直接读取窗体变量,这是获取表单数据的最常用、最简单的方式。例如: txtUserName.Text 

    3.取得Web服务器端的系统信息

    Request对象使用ServerVariables集合对象保存服务器端系统信息,这些信息变量包含在HTTP头部中随HTTP请求一起传送。使用Request对象的ServerVariables集合对象取得环境变量的语法如下: Request.ServerVariables[环境变量名]

    ServerVariables集合对象中保存的常用信息变量如下:

    服务器变量名称 说明
    ALL_HTTP 客户端浏览器发送的HTTP头部
    ALL_RAW 取得传送给浏览器的原始函数
    ALL_MD_PATH Web应用程序相对路径
    ALL_PHYSICAL_PATH Web应用程序物理路径
    AUTH_PASSWORD 使用基本认证是,客户端输入的认证密码
    AUTH_TYPE 客户端认证方式
    AUTH_USER 客户端认证用户名
    CERT_COOKIE 客户端认证ID
    CERT_FLAGS 客户端证书是否存在(1为存在)
    CERT_SARLALNUMBER 客户证书序列号
    CERT_SERVER_SUBJECT 服务器证书内容
    CERT_SUBJECT 客户证书内容
    LOCAL_ADDR 取得要求的服务器地址
    PATH_INFO ASP.NET程序的相对路径
    PATH_TRANSLATED

    将PATH_INFO转换为物理地址

    QUERY_STRING QUERY字符串相关信息
    REMOTE_ADDR

    浏览器所在主机IP地址

    REMOTE_HOST 浏览器所在主机计算机名
    REQUEST_METHOD 客户端表单传递数据的方法(GetPOST)
    SCRIPT_NAME 正在运行脚本的名字
    SERVER_NAME

    运行脚本服务器的主机名、IP或DNS地址

    SERVER_PORT

    取得服务器端口号

    SERVER_PROTOCOL 取得通信协议名称及编号
    SERVER_SOFTWARE 取得服务器端软件的名称及版本

    4.取得客户端浏览器信息

     通过Request对象的Browser属性得到。需要利用Browser属性生成一个HttpBrowserCapabilities类型的对象实例。HttpBrowserCapabilities类具有的常用属性如下:

    属性 说明
    Type 获取客户端浏览器的名称和版本号
    Browser 获取客户端浏览器名称
    Version 获取客户端浏览器版本
    Platform 获取客户端浏览器使用的操作系统名称
    Frames 获取客户端浏览器是否支持框架
    Cookies 获取客户端浏览器是否支持Cookies
    Javascript 获取客户端浏览器是否支持Javascript
  • 相关阅读:
    ExtJs005继承
    ExtJs004define定义类
    ExtJS笔记
    解决vscode-pandoc插件生成pdf中文显示问题
    UDP学习笔记(.NET)
    WPF类库不能添加资源词典(xaml)的解决办法
    解决win10下获取操作系统版本为6.2.900(win8)的问题
    [转] Unit Test 访问Internal类型和方法
    VS2017使用小技巧(持续更新。。。)
    [转]Github遇到Permanently added the RSA host key for IP address '192.30.252.128' to the list of known host
  • 原文地址:https://www.cnblogs.com/bzpfly/p/14511580.html
Copyright © 2020-2023  润新知