最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
.net HttpResponse对象与HttpRequest对象用法
时间:2022-06-25 04:16:03 编辑:袖梨 来源:一聚教程网
在asp教程.net中,http响应信息由httpresponse类进行封装。该类的实例创建于处理请求的http管道建立时,之后该实例被链接到与请求关联的httpcontext对象,通过其response属性暴露。虽然用户定义的asp.net教程代码不需使用httpresponse的构造函数,但此函数可帮助我们理解该类的本质:
public httpresponse(textwriter writer);
public class myfilterstream : memorystream
{
private stream m_stream;
public myfilterstream(stream filterstream)
{
m_stream = filterstream;
}
//the write method actually does the filtering
public override void write(byte[] buffer, int offset, int count)
{
//grab the output as a string
string buf = utf8encoding.utf8.getstring(buffer, offset, count);
//change lowercase chars to uppercase
buf = buf.toupper();
//write the resulting string back the response stream
byte[] data = utf8encoding.utf8.getbytes(buf.tostring());
m_stream.write(data, 0, data.length);
}
}
void page_load(object sender, eventargs e)
{
response.filter = new myfilterstream(response.filter);
}
在传输大型文件时,writefile和binarywrite方法会对web服务器的内存造成压力。为什么会这样呢?因为这两个方法要将整个数据块(文件或字节数组的内容)加载到web服务器的内存中。对于大型文件,这会造成严重的内存问题,迫使asp.net进行自身被回收。transmitfile方法旨在优雅地解决这个问题,该方法能够将输出从文件直接发送到asp.net isapi扩展,随后下载到客户端,而不用向isapi扩展传送大量字符串
httprequest对象包含了传入web请求的http数据包中包含的所有信息。http标头、查询字符串、表单的输入字段、路径和url信息的内容,被分别组织在不同的集合以及其他特殊对象中,能以编程方式便捷地访问。当asp.net开始处理web请求时,httprequest对象会被填充,并通过httpcontext的request属性暴露出来。
httprequest类的属性
httprequest类的属性可被分为三类:请求类型、客户端数据和连接
有关请求的信息
下表列出了有关请求信息的属性:
httpbrowsercapabilities对象包含有关浏览器功能的大量信息,包括是否支持activex控件、脚本语言、框架和cookie等。当请求到达时,为确定发出请求的浏览器,会使用用户代理信息创建httpbrowsercapabilities类的实例,并用浏览器特定的信息进行填充。这些信息不是浏览器动态设置的,而是从服务器存储库中离线获取的。
来自客户端的信息
下表列出了httprequest描述客户端数据的属性:
params集合结合了4个不同但形式相似的集合:querystring、form、servervariables、cookies,这与独立集合所包含的数据一致。该集合按以下次序填充:querystring、form、cookies、servervariables。
有关连接的信息
下表列出了与打开连接有关的属性:
uri类提供了统一资源标识符的对象表示。
httprequest类的方法
下表列出了httprequest类的主要方法:
将请求保存至磁盘
saveas方法使我们能创建存储http请求所有内容的文件。注意,存储介质只能是磁盘文件,而不能使用流和编写器。由于asp.net默认情况下不会被授予磁盘的写入权限,所以,为asp.net帐户授予新建文件(或文件夹)的完全访问权限,是saveas成功运行的条件之
相关文章
- 光遇5.8季节蜡烛在哪里 光遇5月8日季节蜡烛位置攻略 05-08
- 光遇5.8肉桂卷代币在哪里 光遇5月8日大耳狗联动代币收集攻略 05-08
- 光遇5.8大蜡烛在哪里 光遇5月8日大蜡烛位置攻略 05-08
- 光遇5.8免费魔法有什么 光遇5月8日免费魔法收集攻略 05-08
- 崩坏星穹铁道2.2有什么更新 崩铁2.2版本更新内容介绍 05-08
- OKE交易所官网下载2024版 05-08