今天在办公室中无意间听见有人在唬啷【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;
}
{
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;
}
/// 下载某站点的图片到本地服务器
/// </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;
}
浙公网安备 33010602011771号