手机
当前位置:查字典教程网 >编程开发 >asp.net教程 >asp.net HttpWebRequest自动识别网页编码
asp.net HttpWebRequest自动识别网页编码
摘要:复制代码代码如下:staticstringGetEncoding(stringurl){HttpWebRequestrequest=null...

复制代码 代码如下:

static string GetEncoding(string url)

{

HttpWebRequest request = null;

HttpWebResponse response = null;

StreamReader reader = null;

try

{

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

request.Timeout = 20000;

request.AllowAutoRedirect = false;

response = (HttpWebResponse)request.GetResponse();

if (response.StatusCode == HttpStatusCode.OK && response.ContentLength < 1024 * 1024)

{

if (response.ContentEncoding != null && response.ContentEncoding.Equals("gzip", StringComparison.InvariantCultureIgnoreCase))

reader = new StreamReader(new GZipStream(response.GetResponseStream(), CompressionMode.Decompress));

else

reader = new StreamReader(response.GetResponseStream(), Encoding.ASCII);

string html = reader.ReadToEnd();

Regex reg_charset = new Regex(@"charsetbs*=s*(?<charset>[^""]*)");

if (reg_charset.IsMatch(html))

{

return reg_charset.Match(html).Groups["charset"].Value;

}

else if (response.CharacterSet != string.Empty)

{

return response.CharacterSet;

}

else

return Encoding.Default.BodyName;

}

}

catch

{

}

finally

{

if (response != null)

{

response.Close();

response = null;

}

if (reader != null)

reader.Close();

if (request != null)

request = null;

}

return Encoding.Default.BodyName;

}

/// <summary>

/// 获取源代码

/// </summary>

/// <param name="url"></param>

/// <returns></returns>

static string GetHtml(string url, Encoding encoding)

{

HttpWebRequest request = null;

HttpWebResponse response = null;

StreamReader reader = null;

try

{

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

request.Timeout = 20000;

request.AllowAutoRedirect = false;

response = (HttpWebResponse)request.GetResponse();

if (response.StatusCode == HttpStatusCode.OK && response.ContentLength < 1024 * 1024)

{

if (response.ContentEncoding != null && response.ContentEncoding.Equals("gzip", StringComparison.InvariantCultureIgnoreCase))

reader = new StreamReader(new GZipStream(response.GetResponseStream(), CompressionMode.Decompress), encoding);

else

reader = new StreamReader(response.GetResponseStream(), encoding);

string html = reader.ReadToEnd();

return html;

}

}

catch

{

}

finally

{

if (response != null)

{

response.Close();

response = null;

}

if (reader != null)

reader.Close();

if (request != null)

request = null;

}

return string.Empty;

}

【asp.net HttpWebRequest自动识别网页编码】相关文章:

asp.net获取网站目录物理路径示例

jsp和asp.net共享session值示例代码

asp.net中WebResponse 跨域访问实例代码

asp.net显示自己的网页图标的几种方式

asp.net 获取图片高度和宽度实例代码

asp.net导出EXCEL的功能代码

asp.net 自动将汉字转换成拼音第一个字母

asp.net微软图表控件使用示例代码分享

asp.net动态添加js文件调用到网页的方法

asp.net 数据访问层基类

精品推荐
分类导航