当前位置: 移动技术网 > IT编程>开发语言>.net > asp.net HttpWebRequest自动识别网页编码

asp.net HttpWebRequest自动识别网页编码

2018年05月29日  | 移动技术网IT编程  | 我要评论

一路向西在线观看快播,惩罚者美剧,陈荣法喝花酒

复制代码 代码如下:

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(@"charset\b\s*=\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;
}

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网