• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
皇图霸业谈笑间
更高、更快、更强
博客园    首页    新随笔    联系   管理    订阅  订阅
WebRequest和WebClient

今天在办公室中无意间听见有人在唬啷【webrequest】和【webclient】,让我想起之前做的采集工具中的应用。

webrequest应用代码:【主要是用在采集信息之用】

 

        public static string GetAllResponseContent(string url, Encoding encode,string postdate)
        {
            
try
            {
                HttpWebRequest request 
= (HttpWebRequest)WebRequest.Create(url);

                request.UserAgent 
= "Baiduspider(http://www.baidu.com/search/spider.htm)";
                
//request.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.01; Windows NT 5.0)";
                request.Timeout = 10000;

                
#region 填充要post的内容

                
if (postdate.Length > 0)
                {
                    request.ContentType 
= "application/x-www-form-urlencoded";

                    request.Method 
= "Post";
                    
byte[] data = encode.GetBytes(postdate);
                    request.ContentLength 
= data.Length;

                    Stream requestStream 
= request.GetRequestStream();

                    requestStream.Write(data, 
0, data.Length);

                    requestStream.Close();
                }
                
#endregion

                HttpWebResponse response 
= request.GetResponse() as HttpWebResponse;


                Stream stream;
                
if (response.ContentEncoding == "gzip") // 注意内容编码
                {
                    stream 
= new GZipStream(response.GetResponseStream(), CompressionMode.Decompress);
                }
                
else
                {
                    stream 
= response.GetResponseStream();
                }


                StreamReader reader 
= new StreamReader(stream, encode);
                
string text = reader.ReadToEnd();
                reader.Close();
                response.Close();
                
return text;

            }
            
catch (Exception ex)
            {
                LogHelper.WriteException(
string.Format(" 采集过程出现异常,追踪地址:{0}?{1}", url, postdate), ex);
            }
            
return string.Empty;
        }

 

webclient应用代码:【主要是用在采集到信息后下载之用】

 

        /// <summary>
        
/// 下载某站点的图片到本地服务器
        
/// </summary>
        
/// <param name="imgURI">图片源HTTP地址</param>
        
/// <param name="imgFileName">图片名称</param>
        
/// <returns></returns>
        private string DownLoadURIToLocal(string imgURI, string imgFileName)
        {
            
string DownFileName = string.Format(ServerMapthPath, imgFileName);
            DownFileName 
= Server.MapPath(DownFileName);
            
try
            {
                WebClient webClient 
= new WebClient();
                webClient.DownloadFile(imgURI, DownFileName);
            }
            
catch (Exception ex)
            {
                
string msg = ex.Message;
                
return null;
            }
            
return DownFileName;
        }

 

 

 

 

posted on 2009-02-12 15:27  布颜书  阅读(1406)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3