汗,你这个代码,太简单了,也太不全面了。
不多说了,之前都写了,极其详尽的教程了。
自己看就好了。
先看这个:
【整理】关于抓取网页,分析网页内容,模拟登陆网站的逻辑/流程和注意事项
搞懂逻辑。
再用工具,分析你所要处理的网站的逻辑:
【教程】手把手教你如何利用工具(IE9的F12)去分析模拟登陆网站(百度首页)的内部逻辑过程
如果是复杂的值,参考这个去分析:
【教程】如何利用IE9的F12去分析网站登陆过程中的复杂的(参数,cookie等)值(的来源)
然后才是写代码实现。
简单的网页内容提取,可以参考:
【教程】抓取网并提取网页中所需要的信息 之 C#版
复杂的,模拟登陆,可以参考:
【教程】模拟登陆网站 之 C#版(内含两种版本的完整的可运行的代码)
另外,期间会涉及的一些知识:
【整理】关于http(GET或POST)请求中的url地址的编码(encode)和解码(decode)
如果都看完了。
你就会发现,你这点代码,也忒。。。。。
(此处不给贴地址,请用google搜标题,即可找到帖子地址)
把response.GetResponseStream()定向到文件流,再打开就可以了.
应该是你自定义的缓冲区问题.
你要做小偷程序啊?
#region 获取页面信息
public static string getAllPage(string url)
{
try
{
WebRequest request = WebRequest.Create(url);
WebResponse response = request.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("utf-8"));
string strContent = reader.ReadToEnd();
reader.Close();
reader.Dispose();
response.Close();
if (strContent != null)
{
return strContent;
}
else
{
return "0";
}
}
catch
{
return "1";
}
} #endregion
Stream.Read 时只有返回的count 为0时才读完。所以应该在while中读取数据,直到返回0为止。
改一下。
int count = resStream.Read(buf,0, buf.Length);
while(count>0)
{
textBox2.Text += Encoding.Default.GetString(buf, 0, count);
count = resStream.Read(buf,0, buf.Length);
}