本篇文章是续集:.NET 网页或json数据抓取系列:1 - 发送请求
1. 用MemoryStream接收http response
byte[] responseBytes = null;
using (var ms = new MemoryStream())
{
responseStream.CopyTo(ms);
responseBytes = ms.ToArray();
}
2. 接收的字节内容默认转成UTF-8字符串
strResult = Encoding.UTF8.GetString(responseBytes);
3. 动态字符集转换。解决乱码的问题。
3.1. 用正则表达是找到meta标签
3.2. 用第3方html解析器,解析meta标签
3.3. 获取meta标签里的charset属性,并根据动态charset转成格式正确的字符串。
if (response.ContentType == "text/html")
{
var meta = Regex.Match(strResult, "<meta.*/>&