HttpWebResponse类

HttpWebResponse类的作用用于在客户端获取返回的响应的信息,还记得HttpResponse类吗?你是否在写B/S程序的时候,经常用到Response.Write()呢?

  HttpResponse用于在服务器端设置服务端的响应信息,而HttpWebResponse类用于客户端获取服务器端返回的响应信息。这个类还是比较简单,还是可以照着以前的MSDN全部写一遍。

一、属性

CharacterSet       获取响应的字符集。 
ContentEncoding     获取用于对响应体进行编码的方法。 
ContentLength      获取请求返回的内容的长度。 (重写 WebResponse..::.ContentLength。) 
ContentType       获取响应的内容类型。 (重写 WebResponse..::.ContentType。) 
Cookies           获取或设置与此响应关联的 Cookie。 
Headers          获取来自服务器的与此响应关联的标头。 (重写 WebResponse..::.Headers。) 
IsFromCache       获取一个 Boolean 值,该值指示此响应是否为从缓存中获取的。 (继承自 WebResponse。) 
IsMutuallyAuthenticated  获取一个 Boolean 值,该值指示客户端和服务器是否都已经过身份验证。 (重写 WebResponse..::.IsMutuallyAuthenticated。) 
LastModified       获取最后一次修改响应内容的日期和时间。 
Method          获取用于返回响应的方法。 
ProtocolVersion      获取响应中使用的 HTTP 协议的版本。 
ResponseUri       获取响应请求的 Internet 资源的 URI。 (重写 WebResponse..::.ResponseUri。) 
Server           获取发送响应的服务器的名称。 
StatusCode       获取响应的状态。 
StatusDescription    获取与响应一起返回的状态说明。

static void Main(string[] args)
        {
            HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("http://www.baidu.com");    //创建一个请求示例
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            Console.WriteLine(response.CharacterSet);       //输出 utf-8
            Console.WriteLine(response.ContentEncoding);    //空
            Console.WriteLine(response.ContentLength);      //输出 10310
            Console.WriteLine(response.ContentType);        //输出 text/html charset=utf-8

            CookieCollection cc = response.Cookies;
            Console.WriteLine(cc.Count);        //输出 0

            WebHeaderCollection whc = response.Headers;
            Console.WriteLine(whc.Count);       //输出 9
            foreach (string h in whc.AllKeys)
            {
                Console.WriteLine(h.ToString() + " " + whc[h].ToString());      //输出所有的响应头信息
            }

            Console.WriteLine(response.IsFromCache);    //输出 false 该值指示响应是否从缓存获取的
            Console.WriteLine(response.IsMutuallyAuthenticated); //输出 false 客户端和服务器端都已通过身份认证
            Console.WriteLine(response.LastModified);   //输出 2013-04-06 21:03:06 最后一次修改响应的时间和日期
            Console.WriteLine(response.Method);     //输出 Get 返回响应的方法
            Console.WriteLine(response.ProtocolVersion);    //输出 1.1 响应的HTTP协议的版本
            Console.WriteLine(response.ResponseUri);    //输出 http://www.baidu.com 响应请求的Interner资源的URI
            Console.WriteLine(response.Server); //输出 BWS/1.0 发送响应的服务器的名称
            Console.WriteLine(response.StatusCode);     //输出 OK 获取响应的状态,这个不是状态码,而是状态描述,为什么不是200呢,奇怪啊,测试了好几个网站都是OK,而不是200
            Console.WriteLine(response.StatusDescription);      //输出 OK 这个是状态描述,

            Console.ReadKey();
        }

二、方法

Close         关闭响应流。 (重写 WebResponse..::.Close()()()。) 
CreateObjRef     创建一个对象,该对象包含生成用于与远程对象进行通信的代理所需的全部相关信息。 (继承自 MarshalByRefObject。) 
Dispose         释放由 HttpWebResponse 使用的非托管资源,并可根据需要释放托管资源。 
GetLifetimeService   检索控制此实例的生存期策略的当前生存期服务对象。 (继承自 MarshalByRefObject。) 
GetObjectData    基础结构。 使用将目标对象序列化所需的数据填充 SerializationInfo。 (重写 WebResponse..::.GetObjectData(SerializationInfo, StreamingContext)。) 
GetResponseHeader   获取与响应一起返回的标头的内容。 
GetResponseStream   获取流,该流用于读取来自服务器的响应的体。 (重写 WebResponse..::.GetResponseStream()()()。) 
InitializeLifetimeService  获取控制此实例的生存期策略的生存期服务对象。 (继承自 MarshalByRefObject。)

class Program
    {
        static void Main(string[] args)
        {
            HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("http://www.baidu.com");    //创建一个请求示例
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();

            Console.WriteLine(response.GetResponseHeader("Content-Type"));  //输出 text/html;charset=utf-8
            Stream stream = response.GetResponseStream();   //获取响应的字符串流
            StreamReader sr = new StreamReader(stream); //创建一个stream读取流
            string html = sr.ReadToEnd();   //从头读到尾,放到字符串html李米
            Console.WriteLine(html);        //输出首页HTML代码

            Console.ReadKey();
        }
    }

  基本就这么多东西了。

HttpWebResponse类,布布扣,bubuko.com

时间: 2024-11-01 10:23:21

HttpWebResponse类的相关文章

笔记4:HttpWebRequest 与 HttpWebResponse 类

网页的请求与响应均通过HTTP来完成,HTTP是Web最重要的基础核心. HttpWebRequest与HttpWebResponse通过HTTP协议,完成网络"请求/响应"模型架构所需的功能,同时存取网页上各种特定元素. 一.HTTP通信协议 HTTP组成格式主要包含http标题及http主体,这两个部分请求与响应的消息有差别. 客户端向服务器端所发出的HTTP请求消息,其标题包含了一些重要的信息如: (同样服务器响应客户端也会有消息,也有头部信息) Server:Microsoft

C# 之 HttpWebResponse类

提供 WebResponse 类的 HTTP 特定的实现. 继承层次结构 ,"System.Object→System.MarshalByRefObject→System.Net.WebResponse→System.Net.HttpWebResponse 命名空间: System.Net :  程序集:System(在 System.dll 中).       C#语法 [SerializableAttribute] public class HttpWebResponse : WebResp

使用.Net中的HttpWebRequest类和HttpWebResponse类获取web文件

string url = "http://pic.maizuo.com/usr/100002174/0e495857e71e57b9486aecec788d557e.tmp"; WebRequest wreq = WebRequest.Create(url); WebResponse wres = wreq.GetResponse(); long len = wres.ContentLength; byte[] bytes=new byte[len]; Stream ss = wres

HttpWebRequest 和 HttpWebResponse 的应用

转载:http://www.cnblogs.com/yiki/archive/2007/08/28/872528.html HttpWebRequest request = (HttpWebRequest)WebRequest.Create(addr);// Downloads the XML file from the specified server.HttpWebResponse response = (HttpWebResponse)request.GetResponse();Syste

HttpWebRequest和HttpWebResponse

HttpWebRequest HttpWebRequest 类对 WebRequest 中定义的属性和方法提供支持,也对使用户能够直接与使用 HTTP 的服务器交互的附加属性和方法提供支持 不要使用 HttpWebRequest 构造函数.使用 WebRequest.Create 方法初始化新的 HttpWebRequest 对象 HttpWebResponse 决不要直接创建 HttpWebResponse 类的实例.而应当使用通过调用 HttpWebRequest.GetResponse 所

ASP.NET HttpWebRequest和HttpWebResponse

HttpWebRequest和HttpWebResponse类是用于发送和接收HTTP数据的最好选择.它们支持一系列有用的属性. 模拟艺龙旅游网登录 想模拟登录,首先整理一下流程 1.通过360浏览器(IE,火狐等等)F12开发人员工具抓到相关数据 2.获取验证码(拿到cookie),登录时也需要使用 3.登录 ------------------------------- F12调出开发人员工具,输入用户名,密码登录,看我们抓到了什么信息. (此处为360浏览器) Request URL:这个

C# 网络编程之通过豆瓣API获取书籍信息(一)

这篇文章主要是讲述如何通过豆瓣API获取书籍的信息,起初看到这个内容我最初的想法是在"C# 网络编程之网页简单下载实现"中通过HttpWebResponse类下载源码,再通过正则表达式分析获取结点标签得到信息.但后来发现可以通过豆瓣API提供的编程接口实现. 该文章仅是基础性C#网络编程文章,尝试测试了下豆瓣API,并没什么高深的内容.但希望对大家有所帮助,仅供学习. (警告:文章仅供参考,提供一种想法,否则访问多次-10次被403 forbidden莫怪.建议认证使用豆瓣API) 一

C#实现加简单的Http请求

通过.Net中的两个类HttpWebRequest类,HttpWebResponse类来实现Http的请求,响应处理. 第一个小测试是请求百度首页(http://www.baidu.com)的内容,也就是要获得百度首页的html内容, 实现步骤: 1.通过WebRequest类创建一个HttpWebRequest的对象,该对象可以包含Http请求信息. (我有点不理解的是,为什么要通过父类WebRequest来创建这个对象,而不能new一个HttpWebRequest来创建 ,在HttpWebR

C#实现http协议下的多线程文件传输

用C#实现HTTP协议下的多线程文件传输转自  http://developer.51cto.com/art/201105/263066_all.htm C#(C Sharp)是微软(Microsoft)为.NET Framework量身订做的程序语言,C#拥有C/C++的强大功能以及Visual Basic简易使用的特性,是第一个组件导向(Component-oriented)的程序语言,和C++与Java一样亦为对象导向(object-oriented)程序语言.下面主要介绍的是用C#实现H