HttpResponse对象

为了响应客户端的请求,同样定义了代表响应的类:HttpResponse类,它也定义在命名空间System.Web下,提供向客户端响应的方法和属性。

HttpResponse常用属性和方法

响应对象用于向浏览器发回服务器处理的结果,这个结果是Http协议中的响应消息。这个消息中包含:状态行,头部,主体部分。

StatusCode:用于设置状态码,例如:200,500等等

StatusDescription:状态的描述信息。

Status:可以直接设置状态行的内容,例如:200 OK

对于响应的头部信息,大多数可以通过HttpResponse的属性直接设置。对于没有对应属性的头部信息,还可以通过AddHeader方法处理。这个方法接收两个字符串参数,一个回应头的名称,一个回应头所对应的值。

ContentType:响应内容的类型,设置该属性为itext\html,在输出到Http消息中对应的头部信息为Content-Type:text\html.

AddHeader方法定义如下:

       //
        // Summary:
        //     Adds an HTTP header to the output stream. System.Web.HttpResponse.AddHeader(System.String,System.String)
        //     is provided for compatibility with earlier versions of ASP.
        //
        // Parameters:
        //   name:
        //     The name of the HTTP header to add value to.
        //
        //   value:
        //     The string to add to the header.
        public void AddHeader(string name, string value);

例如,在使用http下载的时候,需要设置Content-Disposition回应头,但在HttpResponse中并没有对应的属性,那么可以通过下面的方式完成:

 Response.AddHeader("Content-Disposition","attachment; filename=download.zip");

与HttpRequest类似,HttpResponse也有一个Cookies属性,这个属性是用来向浏览器响应Cookie的集合,每个加入到这个集合中的HttpCookie对象,将在回应头中生成一行如下的回应头:

如服务端创建HttpCookie对象加入到Cookies集合中,向浏览器输出

            HttpCookie n = new HttpCookie("n", "wolfy");
            HttpCookie p = new HttpCookie("p", "1234");
            Response.Cookies.Add(n);
            Response.Cookies.Add(p);

查看响应头信息

响应的内容部分是通过流来完成的,HttpResponse对象的OutputStream属性引用了输出到Http回应的输出流。

       //
        // Summary:
        //     Enables binary output to the outgoing HTTP content body.
        //
        // Returns:
        //     An IO System.IO.Stream representing the raw contents of the outgoing HTTP
        //     content body.
        //
        // Exceptions:
        //   System.Web.HttpException:
        //     OutputStream is not available.
        public Stream OutputStream { get; }

多数情况下,在web开发中,服务器的处理结果是一个文本网页,Output属性指向了一个经过包装的输出流,文本类型的输出流。这样我们可以非常简单的输出文本内容。该属性的定义如下:

       //
        // Summary:
        //     Enables output of text to the outgoing HTTP response stream.
        //
        // Returns:
        //     A System.IO.TextWriter object that enables custom output to the client.
        public TextWriter Output { get; set; }

对于文本内容,所使用的编码由属性ContentEncoding决定,该属性的定义如下:

        //
        // Summary:
        //     Gets or sets the HTTP character set of the output stream.
        //
        // Returns:
        //     A System.Text.Encoding object that contains information about the character
        //     set of the current response.
        //
        // Exceptions:
        //   System.ArgumentNullException:
        //     Attempted to set System.Web.HttpResponse.ContentEncoding to null.
        public Encoding ContentEncoding { get; set; }

注意

在Http消息中,头部必需在主体部分的前面,所以,在已经输出主体部分之后,是不能再次输出消息头的。默认情况下,HttpResponse对输出的内容进行了缓冲,所以通过HttpResponse输出的内容并没有立即输出到http中,还可以进行修改。这个时候,是可以在使用输出流之后再次设置回应头的,但,如果关闭了HttpResponse的缓冲,那么,这样的操作将会出错。HttpResponse的BufferOutput属性是一个bool类型,用于设置是否缓冲输出的内容。

HttpResponse类还提供一些特殊的方法,以以直接返回某些特定的内容,例如,请求的重定向,根据http协议,服务器可以返回iyige状态码为302的回应通知浏览器应该向另外一个地址发出请求。回应头重的Location指出请求的地址.HttpResponse的Redirect方法,可以很方便帮我们实现这个功能,我们只需将重定向的url传给这个方法,HttpResponse返回一个状态码为302的回应,通知浏览器重定向新的Url发出请求。

时间: 2024-10-06 04:04:12

HttpResponse对象的相关文章

Django中视图总结[urls匹配,HttpRequest对象,HttpResponse对象,对象序列化接受及案例]

视图的功能: 接收请求,进行处理,返回应答. 视图返回的内容为: HttpResponse的对象或子对象 render 返回的是HttpResponse的对象 JsonResponse是HttpResponse的子类 HttpResponseRedirect也是HttpResonse的子类 redirect是HttpResponseRedirect的一个简写 总结:所以视图返回的内容一般为:render,redirect,JsonResponse,Httpresponse 定义视图函数分为两步

Django中的HttpRequsest 和Httpresponse对象

HttpRequest对象:每一个用户请求在到达视图函数的同时,django会自动创建一个HttpRequest对象并把这个对象当做第一个参数传给要调用的views方法,HttpRequest对象里封装了本次请求所涉及的用户浏览器端数据.服务器端数据等,在views里可以通过request对象来调取相应的属性.其中用户的get和post请求是以键值对的形式传递给request对象的,request也是以键值对的形式进行封装. HttpResponse对象:与由Django自动创建的HttpReq

django HttpResponse对象

HttpResponse对象 概述: 作用:给浏览器返回数据 HttpRequest对象是由Django创建的,HttpResponse对象是由程序员创建 用法: 不用模板,直接返回数据 语句示例:return HttpResponse("Sunck is a good man") 调用模板 使用render方法 原型:render(request, templateName[, context]) 作用:结合数据和模板,返回一个完整的HTML页面 参数: request:请求体对象

Django框架(九):视图(二) HttpRequest对象、HttpResponse对象

1. HttpRequest对象 服务器接收到http协议的请求后,会根据报文创建HttpRequest对象,这个对象不需要我们创建,直接使用服务器构造好的对象就可以.视图的第一个参数必须是HttpRequest对象,在django.http模块中定义了HttpRequest对象的API. 1.1 属性 path:一个字符串,表示请求的页面的完整路径,不包含域名和参数部分. method:一个字符串,表示请求使用的HTTP方法,常用值包括:'GET'.'POST'. 在浏览器中给出地址发出请求采

19 01 19 视图 HttpReqeust对象 GET属性 POST属性 HttpResponse对象

---恢复内容开始--- URLconf 义,指定URL和视图函数的对应关系. 在应用内部创建urls.py文件,指定请求地址与视图的对应关系. url(正则,'视图函数名称') 1)如示例在booktest/urls.py中创建首页的url,代码如下 from django.conf.urls import url from booktest import views urlpatterns=[ url(r'^$',views.index), ] 2)如示例在booktest/views.py

django的HttpResponse对象

服务器接收到http协议的请求后,会根据报文创建HttpRequest对象,这个对象不需要我们创建,直接使用服务器构造好的对象就可以.视图的第一个参数必须是HttpRequest对象,在django.http模块中定义了HttpRequest对象的API 属性 下面除非特别说明,属性都是只读的. path:一个字符串,表示请求的页面的完整路径,不包含域名和参数部分. method:一个字符串,表示请求使用的HTTP方法,常用值包括:'GET'.'POST'. 在浏览器中给出地址发出请求采用get

Django HttpResponse与JsonResponse对象

一:HttpResponse对象介绍 前面一节课讲到的HttpRequest用于接受客户端发送到服务器的内容,封装成一个HttpRequest对象: 那么服务器视图函数在处理相关逻辑后,也需要返回给我们的客户端. HttpResponseBase或者它的子类就是返回给客户端的对象:而HttpResponse则是HttpResponseBase用得最多的子类: 二:HttpResponse常用属性 1. content:返回的内容. 2. status_code:返回的HTTP响应状态码. 3.

django的HTTPREQUEST对象

Django使用request和response对象 当请求一张页面时,Django把请求的metadata数据包装成一个HttpRequest对象,然后Django加载合适的view方法,把这个HttpRequest 对象作为第一个参数传给view方法.任何view方法都应该返回一个HttpResponse对象. 我们在本书中大量使用这两个对象:本附录详细解释HttpRequest和HttpResponse对象. HttpRequest HttpRequest代表一个来自uesr-agent的

Tomcat如何与Servlet对象进行交互

Tomcat 是Web应用服务器,是一个Servlet/JSP容器. Tomcat 作为Servlet容器,负责处理客户请求,把请求传送给Servlet,并将Servlet的响应传送回给客户.而Servlet是一种运行在支持Java语言的服务器上的组件. Servlet最常见的用途是扩展Java Web服务器功能,提供非常安全的,可移植的,易于使用的CGI替代品.下面我们描述一下Tomcat与Servlet是如何工作的,首先看下面的时序图. 1.1.Web客户向Servlet容器(Tomcat)