登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

樱之花

叶散的时候,你明白欢聚;花谢的时候,你明白青春.

 
 
 

日志

 
 
关于我

分类中“我的实验室”是我在日常工作中的一些知识总结,有些写的比较匆忙,可能大家在阅读时会产生困扰,后期有时间我会重新整理编辑,谢谢大家的到访,您们的支持是我前进的动力!

在这System.Net 之 HttpWebRequest 和 HttpWebResponse 的应用里添加日志标题  

2009-08-10 16:02:21|  分类: .NET/C# |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

在这System.Net 之 HttpWebRequest 和 HttpWebResponse 的应用里添加日志标题 - IDesire - YinZhiHua2008 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(addr);

在这System.Net 之 HttpWebRequest 和 HttpWebResponse 的应用里添加日志标题 - IDesire - YinZhiHua2008 // Downloads the XML file from the specified server.

在这System.Net 之 HttpWebRequest 和 HttpWebResponse 的应用里添加日志标题 - IDesire - YinZhiHua2008 HttpWebResponse response = (HttpWebResponse)request.GetResponse();

在这System.Net 之 HttpWebRequest 和 HttpWebResponse 的应用里添加日志标题 - IDesire - YinZhiHua2008 System.IO.StreamReader sr = new StreamReader(response.GetResponseStream(), System.Text.Encoding.GetEncoding("gb2312"));

在这System.Net 之 HttpWebRequest 和 HttpWebResponse 的应用里添加日志标题 - IDesire - YinZhiHua2008 Console.Write(sr.ReadToEnd());

在这System.Net 之 HttpWebRequest 和 HttpWebResponse 的应用里添加日志标题 - IDesire - YinZhiHua2008 sr.Close();

在这System.Net 之 HttpWebRequest 和 HttpWebResponse 的应用里添加日志标题 - IDesire - YinZhiHua2008 response.Close();

在这System.Net 之 HttpWebRequest 和 HttpWebResponse 的应用里添加日志标题 - IDesire - YinZhiHua2008

1.获取http地址上的图片

http://www.cnblogs.com/fooo/archive/2007/06/28/798335.html

在这System.Net 之 HttpWebRequest 和 HttpWebResponse 的应用里添加日志标题 - IDesire - YinZhiHua2008 HttpWebResponse resp;

在这System.Net 之 HttpWebRequest 和 HttpWebResponse 的应用里添加日志标题 - IDesire - YinZhiHua2008          HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create("http://www.csdn.net/Images/logo_csdn.gif");

在这System.Net 之 HttpWebRequest 和 HttpWebResponse 的应用里添加日志标题 - IDesire - YinZhiHua2008          req.Timeout = 150000;

在这System.Net 之 HttpWebRequest 和 HttpWebResponse 的应用里添加日志标题 - IDesire - YinZhiHua2008          resp = (HttpWebResponse)req.GetResponse();

在这System.Net 之 HttpWebRequest 和 HttpWebResponse 的应用里添加日志标题 - IDesire - YinZhiHua2008          System.Drawing.Image img;

在这System.Net 之 HttpWebRequest 和 HttpWebResponse 的应用里添加日志标题 - IDesire - YinZhiHua2008          img = new System.Drawing.Bitmap(resp.GetResponseStream());

在这System.Net 之 HttpWebRequest 和 HttpWebResponse 的应用里添加日志标题 - IDesire - YinZhiHua2008

2.

HttpWebRequest&HttpWebResponse Headers

介绍

这里简要介绍如何使用HttpWebRequest&HttpWebResponse两个对象与HTTP服务器进行直接交互的过程.HttpWebRequest类对WebRequest中定义的属性和方法提供支持,在使用HttpWebRequest对象向HTTP服务器发起请求时请不要使用HttpWebRequest对象的构造函数,而应该使用WebRequest.Create()方法来初始化新的HttpWebRequest对象.如果统一资源标识符方案是"http://"或"https://"时,Create()则返回HttpWebResponse对象.

代码

首先,我们需要创建一个新的HttpWebRequest对象,代码如下:

HttpWebRequest myrequest = (HttpWebRequest)WebRequest.Create(new Uri("urlstring"));

注意:上文中已经提到过不要使用HttpWebRequest的构造函数来创建对象;使用WebRequest.Create()方法初始化HttpWebRequest对象时应该对其进行类型转换.

接下来可以对新初始化的对象进行简单操作,比如可以设置它的标头属性,

下表列出了由属性或方法设置或由系统设置的标头:


标头

设置方法

Accept 由Accept属性设置
Connection 由Connection属性和KeepAlive属性设置
Content-Length 由ContentLength属性设置
Content-Type 由ContentType属性设置
Expect 由Expect属性设置
Date 由系统设置为当前日期
Host 由系统设置为当前主机信息
If-Modified-Since 由IfModifiedSince属性设置
Range 由Range属性设置
Transfer-Encoding 由TransferEncoding属性设置
Referer 由Referer属性设置
User-Agent

由UserAgent属性设置


注意:HttpWebRequest自动注册.使用以"http://"或"https://"开头的URL之前,不需要调用RegisterPrefix方法来注册

System.Net.HttpWebRequest选自:

MSDN:ms-help://MS.MSDNQTR.v80.chs/MS.MSDN.v80/MS.NETDEVFX.v20.chs/cpref10/html/T_System_Net_HttpWebRequest.htm

在完成对服务器的请求之后,我们需要获取从服务器中返回的信息,正如前面提到过的,使用HttpWebResponse类,具体做法参照如下代码:

HttpWebResponse myresponse = (HttpWebResponse)myrequest.GetResponse();

同 样这里我们需要使用HttpWebResponse进行类型转换.到这里,我们已经成功的获得服务器返回的信息,一个myresponse对象,我们可以 利用它来获得更多详细的信息,比如从服务器返回的Headers标头,还有其他的有用信息.而在此我们只给您列出如何获得来自服务器响应的Headers 标头信息.我们的具体方法是这样的:

        #region GetHeaders

        public static WebHeaderCollection GetHeaders(Uri uri)

        {

            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);

            // 省略部分代码......

            HttpWebResponse response = (HttpWebResponse)request.GetResponse();

            // 省略部分代码......

            return response.Headers;

        }

        #endregion

下面就是提供的main()函数:

        // The app entry point

        public static void Main(string[] args)

        {

            WebHeaderCollection headers = GetHeaders(new Uri("http://www.listim.net"));

            string[] headkeys = headers.AllKeys;

            Console.WriteLine("{0,-30}{1}", "Name", "Value");

            Console.WriteLine("--------------------------------");

            foreach (string s in headkeys)

            {

                Console.WriteLine("{0,-30}{1}", s, headers[s]);

            }

        }

以下是该程序显示的效果图:

在这System.Net 之 HttpWebRequest 和 HttpWebResponse 的应用里添加日志标题 - IDesire - YinZhiHua2008

3.

http://blog.csdn.net/Cheaper_c/archive/2004/10/19/142979.aspx

最近在为公司产品(ASP.NET B/S结构)进行升级的时候遇到了客户的这样一个需求.

    系统提供会议投票这样一种功能,在会议参与者对此次会议所要研究的合同进行研讨之后,系统把参与者的意见(同意,不同意,有条件同意)和意见的详细信息列 出,供会议决策者参考,最后由会议决策者输入决策意见.

    其中每一笔合同都包括很多信息,如:法人资料,兄弟公司信息,担保人信息等等,用户迫切需要保存这一系列信息的当前状态.因为这些信息在未来的系统使用过 程中可能会发生变更,比如担保人的名称变更等等.

    但是所有的这些信息是由不同的功能结合起来组成的,如果想把这些信息进行汇总,那么重写所有的信息获取方法是不太可行的,所以直接请求页面,从服务器返回 的HTML数据流中获取所需内容也许是一个可行的办法.

    首先在程序中维持一个所有信息请求页面地址的列表,然后循环这个列表,进行信息的获取.

    在程序中用到了System.Net, System.IO命名空间.

public string getPageFromURL(string url)

{

string content = "";

// Create a new HttpWebRequest object.Make sure that

// a default proxy is set if you are behind a fure wall.

//其中,HttpWebRequest实例不使用HttpWebRequest的构造函数来创建,二是使用WebRequest的Create方法来创建.

HttpWebRequest myHttpWebRequest1 =(HttpWebRequest)WebRequest.Create(url);

//不维持与服务器的请求状态

myHttpWebRequest1.KeepAlive=false;

//创建一个HttpWebRequest对象

//Assign the response object of HttpWebRequest to a HttpWebResponse variable.\

HttpWebResponse myHttpWebResponse1;

try

{

     // 根据微软MSDN上所说:"决不要直接创建HttpWebResponse的实例,要使用HttpWebRequest的GetResponse()方法 返回的实例."具体的原因我也不清楚,可能HttpWebResponse类的构造函数中没有实现HttpWebResponse实例的代码吧.

   myHttpWebResponse1 = (HttpWebResponse)myHttpWebRequest1.GetResponse();

  //设置页面的编码模式

   System.Text.Encoding utf8 = System.Text.Encoding.Default;

   Stream streamResponse=myHttpWebResponse1.GetResponseStream();

   StreamReader streamRead = new StreamReader(streamResponse, utf8);

   Char[] readBuff = new Char[256];

     //这里使用了StreamReader的Read()方法,参数意指从0开始读取256个char到readByff中.

     //Read()方法返回值为指定的字符串数组,当达到文件或流的末尾使,方法返回0

   int count = streamRead.Read( readBuff, 0, 256 );

   while (count > 0)

   {

    String outputData = new String(readBuff, 0, count);

    content += outputData;

    count = streamRead.Read(readBuff, 0, 256);

   }

   myHttpWebResponse1.Close();

   return(content);

}

catch(WebException ex)

{

   content = "在请求URL为:" + url + "的页面时产生错误,错误信息为" + ex.ToString();

   return(content);

}

  评论这张
 
阅读(980)| 评论(0)

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018