[转]数据下载(五)

using System;
using System.Collections.Generic;
using System.Text;
using System.Net;
using System.IO;
using System.Threading;


namespace prjDownLoad
{
    class Program
    {
        static void Main(string[] args)
        {
            //Version5.0
            //使用WebRequest和WebResponse配合
            //创建WebRequest对象
            WebRequest wr = WebRequest.Create("http://blog.sina.com.cn/dalishuishou");
            //开始异步地获取回应对象
            //如果有了回应对象,那么把过程交给GetResponseCallBack去处理
            wr.BeginGetResponse(new AsyncCallback(GetResponseCallBack),wr);
            Console.ReadLine();
        }

        static void GetResponseCallBack(IAsyncResult result)
        {
            //拿到那个请求对象
            WebRequest wr= result.AsyncState as WebRequest;
            //如果回应回完了,那么拿到回应对象
            WebResponse wsp = wr.EndGetResponse(result);
            //从回应中拿到流
            Stream st = wsp.GetResponseStream();
            //先做一个文件流准备接受从回应中返回的数据
            FileStream fs = new FileStream("c:\\ee.txt", FileMode.Create, FileAccess.Write);
            //往死里循环
            while (true)
            {
                //弄一个byte数组
                byte[] bs = new byte[1024];
                //不管不顾的读取到byte数组中
                int x = st.Read(bs, 0, bs.Length);
                //要是x是0,那就是读完了。
                //完了就完了吧
                if (x == 0)
                {
                    break;
                }
                //把弄到的数据给塞到文件流里头
                fs.Write(bs, 0, x);
                //使劲塞
                fs.Flush();
            }
            //关门,放铁牛。
            fs.Close();
        }
    }
}

转摘自:http://blog.sina.com.cn/s/blog_49458c270100gpzi.html

posted @ 2011-03-01 22:58  愤怒的熊猫  阅读(83)  评论(0编辑  收藏  举报