在跨站下载中,如何用webrequest抓,抓完不保存,放在下载中,如何实现?请各位大神帮忙,给个小Demo,谢谢!

解决方案 »

  1.   

    放在下载中是什么意思,你暂时的一个byte[]??
      

  2.   

                string html = null;
                string url = "http://china.alibaba.com/keyword/promotion.htm?catId=14";
                WebRequest req = WebRequest.Create(url);
                req.Method = "POST";
                WebResponse res = req.GetResponse();
                Stream receiveStream = res.GetResponseStream();
                //Encoding encode = Encoding.GetEncoding("gb2312");
                //StreamReader sr = new StreamReader(receiveStream, encode);
                byte[] readbuffer = new byte[256];
                int n = receiveStream.Read(readbuffer, 0, 256);
                while (n > 0)
                {
                    //string str = new string(readbuffer, 0, n);
                    //html += str;
                    n = receiveStream .Read(readbuffer, 0, 256);
                }
                //System.Console.Write(html);
      

  3.   

    那个readbuffer 就是一个缓存区,你需要将每次read到得数据保存到自己定义的byte[]中,那部分我没写,你自己试试
      

  4.   


    你要下载?那你直接输出到
    Respose.Clear();
    receiveStream.Write(Respose.OutputStream);
    Response.End();
      

  5.   

    string url = "http://china.alibaba.com/keyword/promotion.htm?catId=14";
    WebRequest req = WebRequest.Create(url);
    WebResponse res = req.GetResponse();
    Stream receiveStream = res.GetResponseStream();
    Response.Clear();
    receiveStream.Write(Response.OutputStream);
    Response.End();
      

  6.   

    receiveStream.Write(Response.OutputStream);这个有错,
      

  7.   

               Stream receiveStream = res.GetResponseStream();
                byte[] buf=new byte[receiveStream.Length];
                receiveStream.Read(buf, 0, buf.Length);
                Response.Clear();
                Response.OutputStream.Write(buf,0,buf.Length);
                Response.End();
      

  8.   

     byte[] buf=new byte[receiveStream.Length]; 这句爆出错误,此流不支持查找操作
      

  9.   

    Stream receiveStream = res.GetResponseStream();
    byte[] readbuffer = new byte[256];
    int n = receiveStream.Read(readbuffer, 0, 256);
    Response.Clear();
    while (n > 0)
    {
        Response.OutputStream.Write(buf,0,n);
        n = receiveStream .Read(readbuffer, 0, 256);}
    Response.End();