HttpServerUtility除了公开了比较常用的Encode, Decode方法外,还公开了一个非常有用的方法:Execute(),是的,它非常有用,尤其是您需要在服务端获取一个页面或者用户控件的HTML输出时。如果您对这个功能有兴趣可以参考我的博客:【我的Ajax服务端框架 - (4) JS直接请求ascx用户控件】
HttpRequest
现在总算轮到第一个核心对象出场了。MSDN给它作了一个简短的解释:“使 ASP.NET 能够读取客户端在 Web 请求期间发送的 HTTP 值。”
这个解释还算是到位的。HttpRequest的实例包含了所有来自客户端的所有数据,我们可以把这些数据看成是输入数据, Handler以及Module就相当于是处理过程,HttpResponse就是输出了。
在HttpRequest包含的所有输入数据中,有我们经常使用的QueryString, Form, Cookie,它还允许我们访问一些HTTP请求头、浏览器的相关信息、请求映射的相关文件路径、URL详细信息、请求的方法、请求是否已经过身份验证,是否为SSL等等。
HttpRequest的公开属性绝大部分都是比较重要的,这里就简单地列举一下吧。
- // 获取服务器上 ASP.NET 应用程序的虚拟应用程序根路径。
- public string ApplicationPath { get;}
- // 获取应用程序根的虚拟路径,并通过对应用程序根使用波形符 (~) 表示法(例如,以“~/page.aspx”的形式)使该路径成为相对路径。
- public string AppRelativeCurrentExecutionFilePath { get;}
- // 获取或设置有关正在请求的客户端的浏览器功能的信息。
- public HttpBrowserCapabilities Browser { get;set;}
- // 获取客户端发送的 cookie 的集合。
- public HttpCookieCollection Cookies { get;}
- // 获取当前请求的虚拟路径。
- public string FilePath { get;}
- // 获取采用多部分 MIME 格式的由客户端上载的文件的集合。
- public HttpFileCollection Files { get;}
- // 获取或设置在读取当前输入流时要使用的筛选器。
- public Stream Filter { get;set;}
- // 获取窗体变量集合。
- public NameValueCollection Form { get;}
- // 获取 HTTP 头集合。
- public NameValueCollection Headers { get;}
- // 获取客户端使用的 HTTP 数据传输方法(如 GET、POST 或 HEAD)。
- public string HttpMethod { get;}
- // 获取传入的 HTTP 实体主体的内容。
- public Stream InputStream { get;}
- // 获取一个值,该值指示是否验证了请求。
- public bool IsAuthenticated { get;}
- // 获取当前请求的虚拟路径。
- public string Path { get;}
- // 获取 HTTP 查询字符串变量集合。
- public NameValueCollection QueryString { get;}
- // 获取当前请求的原始 URL。
- public string RawUrl { get;}
- // 获取有关当前请求的 URL 的信息。
- public Uri Url { get;}
- // 从 QueryString、Form、Cookies 或 ServerVariables 集合中获取指定的对象。
- public string this[string key] { get;}
- // 将指定的虚拟路径映射到物理路径。
- // 参数: virtualPath: 当前请求的虚拟路径(绝对路径或相对路径)。
- // 返回结果: 由 virtualPath 指定的服务器物理路径。
- public string MapPath(string virtualPath);
下