ASP.NET的内置对象之一 Request

一、Request简介

    Request对象是.net的内置对象之一,也是.net中常用的对象,用于获取客户端的信息,可以使用Request对象访问任何基于HTTP请求传递的所有信息。通过Request对象能够获得客户端发送给服务器的信息,不能将服务器端的数据发送给客户端的浏览器。

二、Request对象的作用

    对于.net的内置对象之一Request,我将其在应用程序中所发挥的作用分为两种,第一种是通过Request对象,可以在服务器端获取当前访问该服务器的客户端(浏览器)的一些数据信息,第二种是在服务器端可以获取从html表单中用postget方法传递的参数,当然也包括使用Ajaxpostget方法传递的参数。接下来我将结合实例对这两种作用进行一一概述。

 2.1  通过Request,在服务器端获取客户端(浏览器)的数据信息

比如现在有一个用户通过在浏览器中输入网址( http://localhost:4035/Home/Index)访问一个服务器。那么此时在服务器端可以通过Request获取关于客户端浏览器的信息(还有一些其他的信息,没有一一列举)如下:

string GetUHA=Request.UserHostAddress;//获取客户端的主机IP地址

string GetUHN = Request.UserHostName;//获取客户端的DNS名称

string GetUrl = Request.Url.ToString();//获取当前请求的url  如:http://localhost:4035/Home/Index

string ss = Request.Url.Authority;//获取DNS主机名或IP和端口号  如:localhost:4035

string sss = Request.Url.AbsoluteUri;//http://localhost:4035/Home/Index

string GetPath = Request.Path;//获取当前请求的虚拟路径 /Home/Index

string GeyPhysiclaPath = Request.PhysicalApplicationPath;//获取当前请求的物理路径C:\Users\King\Desktop\ASPNET_Built-In_Object\ASPNET_Built-In_Object\

 注释:在系统运行的过程中,在打印日志和记录访客详细信息的时候,可能会需要用到该信息。

    另外,还有一种情况会使用到Request对象,比如一个用户在客户端通过httppostget方法向服务器端传递数据,此时,可以通过Request来获取传递的数据,如下:

//通过RequestQueryString属性可以获取由Http Get方式提交的数据,如 http://localhost:4035/Home/Index?id=12&name=小张

string GetQueryString_a = Request.QueryString["id"];

string GetQueryString_b = Request.QueryString["name"];//如果获取不到则为null

//通过RequestInputStream属性可以获取由Http Post方式提交的数据(注释:即使不是post方式发送的数据,执行到这步也不会报错,得到的字符串是空字符串)

 System.IO.Stream stream = Request.InputStream;

 System.IO.StreamReader sr = new System.IO.StreamReader(stream,System.Text.Encoding.UTF8);//通过StreamReader将流以utf8的编码方式以字符串的形式读取出来

string GetPostContent = sr.ReadToEnd();

2.2  获取从html表单中用postget方法传递的参数

    在后台服务器端获取从html表单传递的参数,无论是post还是get方法,都可以通过Request[“参数名”]的形式来获取,此外,在前端通过Ajax方法传递的参数也可以通过该形式来获取每个参数对应的值。

三、注意事项

    在使用Request时需要注意的是,比如想在另一个类库中获取当前request的信息,那么就需要将该Request通过参数传递到该类库中的某一个方法中,接收该参数的类型需使用HttpRequestBase

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值