我单位Web服务器上有一些文件,url为http://www.xxx.com/MyWeb,我想以流的方式把它读到客户端,文件类型已知,均为PDF文档。请教如何用C#编写代码?

解决方案 »

  1.   


     HttpWebRequest httpRequest = HttpWebRequest.Create("http://www.xxx.com/MyWeb/xxx.pdf");// 填入某个pdf文件的全地址
     HttpWebResponse httpResponse = httpRequest.GetResponse();
     Stream s = httpResponse.GetResponseStream(); // 这个就是你要的stream
      

  2.   

    决不要直接创建 HttpWebResponse 类的实例。而应当使用通过调用 HttpWebRequest.GetResponse 所返回的实例。您必须调用 Stream.Close 方法或 HttpWebResponse.Close 方法来关闭响应并将连接释放出来供重用。不必同时调用 Stream.Close 和 HttpWebResponse.Close,但这样做不会导致错误。从 Internet 资源返回的公共标头信息公开为该类的属性。有关完整的列表,请参见下表。可以从 Headers 属性以名称/值对的形式读取其他标头。下表显示可以通过 HttpWebResponse 类的属性使用的公共 HTTP 标头。标头 
     属性 
     
    Content-Encoding 
     ContentEncoding 
     
    Content-Length 
     ContentLength 
     
    Content-Type 
     ContentType 
     
    Last-Modified 
     LastModified 
     
    服务器 
     Server 
     通过调用 GetResponseStream 方法,以 Stream 的形式返回来自 Internet 资源的响应的内容。
      

  3.   

    下面的示例返回 HttpWebRequest 的 HttpWebResponse。HttpWebRequest HttpWReq = 
    (HttpWebRequest)WebRequest.Create("http://www.xxx.com/MyWeb/xxx.pdf");//HttpWebResponse HttpWResp = (HttpWebResponse)HttpWReq.GetResponse();//获取服务器响应对象
    Stream stream=HttpWResp.GetResponseStream();//获取相应流对象
    //然后创建文件流对象,用流的形式保存文件内容
    HttpWResp.Close();
      

  4.   

    感谢各位,不过你们说的都是在WEB服务器上运行的程序,我的程序就是普通的Windows程序。
      

  5.   

    上面的代码都可以在windowform里运行,你是去读取网站上的文件,当然可以获取数据
      

  6.   

    HttpWebRequest HttpWReq = 
    (HttpWebRequest)WebRequest.Create("http://www.xxx.com/MyWeb/xxx.pdf");//HttpWebResponse HttpWResp = (HttpWebResponse)HttpWReq.GetResponse();//获取服务器响应对象
    Stream stream=HttpWResp.GetResponseStream();//获取相应流对象
    //然后创建文件流对象,用流的形式保存文件内容
    HttpWResp.Close();
    --------------------
    那么如何将它保存为本地的PDF文件呢?
      

  7.   

                HttpWebRequest httpRequest = (HttpWebRequest)HttpWebRequest.Create("http://www.wlotx.com/orgxys.pdf");// 填入某个pdf文件的web地址
                  HttpWebResponse httpResponse = (HttpWebResponse)httpRequest.GetResponse();
                Stream s = httpResponse.GetResponseStream(); // 这个就是你要的stream            FileStream fs = new FileStream(@"c:\xxx.pdf", FileMode.Create); // 打开要写入的文件,c:\xxx.pdf是文件名            byte[] buf = new byte[BufSize];
                int size = s.Read(buf, 0, BufSize);
                while (size > 0)
                {
                    fs.Write(buf, 0, size);                size = s.Read(buf, 0, BufSize);
                }            s.Close();
                fs.Close();