手机
当前位置:查字典教程网 >编程开发 >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 SqlDataReader绑定Repeater

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

asp.net中IDataParameter调用存储过程的实现方法

asp.net for循环语句第1/2页

asp.net Repeater绑定时使用函数

Asp.Net类库中发送电子邮件的代码

asp.net错误页面处理示例分享

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

asp.net下Request.QueryString取不到值的解决方法

asp.net Ajax 安装与卸载方法

精品推荐
分类导航