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

Request常用的属性

属性  具体内容
 ApplicationPath  获取服务器上asp.net应用程序的虚拟应用程序根路径(自己文件相对于根目录的目录,如:"/")
AppRelativeCurrentExecutionFilePath
获取当前执行请求相对于应用程序的根目录的虚拟路径,以~开头,例如~/login.aspx
PhysicalApplicationPath
获取当前应用的物理路径。C:\Users\source\repos\Project\
 CurrentExecutionFilePath 获取当前请求的虚拟路径
 Path  获取当前请求的虚拟路径
 PathInfo 获取具有URL扩展名的资源的附加路径信息
FilePath 获取当前请求的虚拟路径
PhysicalPath 获取当前请求的物理路径。C:\Users\source\repos\Project\login.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:\Users\source\repos\Project\login.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 客户端表单传递数据的方法(Get\POST)
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

.NET Request对象介绍的更多相关文章

  1. Request对象介绍(客户端到服务器)

    1.处理请求和响应的过程request,response,关于request可以从三个方面着手学习.1:如何获取请求头  行  体   2:请求中文处理     3:请求对象的其它常用方法 1.1:r ...

  2. 序列化与反序列化、def的介绍与快速使用、cbv源码分析、APIView与request对象分析

    今日内容概要 序列化与反序列化 def介绍和快速使用 cbv源码流程分析 drf之APIView和Request对象分析 内容详细 1.序列化和反序列化 # api接口开发 最核心最常见的一个过程就是 ...

  3. ASP.NET Web API 路由对象介绍

    ASP.NET Web API 路由对象介绍 前言 在ASP.NET.ASP.NET MVC和ASP.NET Web API这些框架中都会发现有路由的身影,它们的原理都差不多,只不过在不同的环境下作了 ...

  4. Volley(二)—— 基本Request对象 & RequestQueue&请求取消

    详细解读Volley(一)—— 基本Request对象 & RequestQueue&请求取消 Volley它非常适合去进行数据量不大,但通信频繁的网络操作,而对于大数据量的网络操作, ...

  5. JSP内置对象--request对象

    本文主要介绍JSP中的request对象 request对象的主要方法: setAttribute(String name,Object):设置名字为name的request的参数值 getAttri ...

  6. django中request对象详解(转载)

    django中的request对象详解 Request 我们知道当URLconf文件匹配到用户输入的路径后,会调用对应的view函数,并将  HttpRequest对象  作为第一个参数传入该函数. ...

  7. 三HttpServletResponse对象介绍(1)

    转载自http://www.cnblogs.com/xdp-gacl/p/3789624.html Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象 ...

  8. JSP内置对象--request对象 (setCharacterEncoding("GBK"),getParameter(),getParameterValues(),getParameterNames(),getServletPath(),getContextPath()

    使用最多,主要用来接收客户端发送而来的请求信息,他是javax.servlet.http.HttpServletRequest接口的实例化对象. public interface HttpServle ...

  9. HttpServletResponse对象介绍

    一.HttpServletResponse对象介绍

随机推荐

  1. DoH & DNS over HTTPS

    DoH & DNS over HTTPS DNS over HTTPS(DoH)服务 http://mozilla.com.cn/thread-422231-1-1.html https:// ...

  2. js generator和yield

    function co<T>(fn: () => Generator<any, any, any>): Promise<T> { const g: Gener ...

  3. 10月份上线的NGK有什么不同之处?

    近日,有小道消息传出公链项目NGK即将在10月上线的消息.各大社区纷纷开始布局,市场中关于NGK项目的消息也变得更多了起来.仅是社区热度这一点,对比之下就已经优于很多项目,那么是否还有其他优势呢?让我 ...

  4. close() 和fluse()区别

    1.close()默认包含了一次flush()操作,关闭之后,就不能再写入了. 2.flush()刷新,flush()之后,可以接着写入. 3.缓冲区默认大小是8192字节,如果小于8192字节,不会 ...

  5. 微信小程序中input标签高度设置

    如果没有设置高度所以显示的是控件自身的高度. 微信小程序input控件原始设置: 上图发现: 我只覆盖了官方input的height,而没有覆盖min-height; .query input{ bo ...

  6. 微信小程序:Navigator导航组件

    导航组件:类似超链接标签. url:要跳转的页面路径,可以放绝对路径,也可以放相对路径,绝对路径指从pages作为根目录开始找到你要的页面. 找到你要找的页面的相对地址的方法:在vscode中,该页面 ...

  7. LDAP启动TLS 完整操作流程

    配置LDAP启动TLS 阅读本文之前,建议初学的小伙伴先看一下上一篇:完整的 LDAP + phpLDAPadmin安装部署流程 (ubuntu18.04) 以下正文: 接下来的操作承接上文,还是在同 ...

  8. go的循环

    目录 go的循环 一.语法 二.语法简写 1.省略第一部分 2.省略第二部分 3.省略第三部分 4.全省略:死循环 5.终极写法,简洁变形 go的循环 Go中只有for循环,没有while循环.因为w ...

  9. Svelte 极简入门

    ​弹指之间即可完成.   注意:原文发表于 2017-8-7,随着框架不断演进,部分内容可能已不适用.     Svelte 是一种新型框架.   以往我们要引入一个框架或者类库,可以通过在页面上放置 ...

  10. 后端程序员之路 52、A Tour of Go-2

    # flowcontrol    - for        - for i := 0; i < 10; i++ {        - for ; sum < 1000; {        ...