zoukankan      html  css  js  c++  java
  • WebRequest之HttpWebRequest实现服务器上文件的下载(一)

    WebRequest是操作WEB请求的抽象象,它作为所有WEB请求的基类,主要由FileWebRequestFtpWebRequest、HttpWebRequest这三个类进行实现。(选自MSDN)今天主要说一下

    HttpWebRequest,从名字上看,他肯定是用来操作HTTP请求的,没错,正是如此。

    标头

    设置方

    Accept

    Accept 属性设置。

    Connection

    Connection 属性和 KeepAlive 属性设置。

    Content-Length

    ContentLength 属性设置。

    Content-Type

    ContentType 属性设置。

    Expect

    Expect 属性设置。

    Date

    由系统设置为当前日期。

    Host

    由系统设置为当前主机信息。

    If-Modified-Since

    IfModifiedSince 属性设置。

    Range

    AddRange 方法设置。

    Referer

    Referer 属性设置。

    Transfer-Encoding

    TransferEncoding 属性设置(SendChunked 属性必须为 true)。

    User-Agent

    UserAgent 属性设置。

    一个小例子,从网上下载图片,到本地,并进行保存。

    代码如下:

    Uri downUri = new Uri(@"http://img1.c2cedu.com/image/new/images/freebg.png");
    //建立一个WEB请求,返回HttpWebRequest对象           
     HttpWebRequest hwr = (HttpWebRequest)WebRequest.Create(downUri);

    //设置接收对象的范围为0-10000000字节。

    hwr.AddRange(0, 10000000);

    //流对象使用完后自动关闭
                using (Stream stream = hwr.GetResponse().GetResponseStream())
                {
    //文件流,流信息读到文件流中,读完关闭
                    using (FileStream fs = File.Create(@"c:\gif.png"))
                    {
    //建立字节组,并设置它的大小是多少字节
                        byte[] bytes = new byte[102400];
                        int n = 1;
                        while (n > 0)
                        {
    //一次从流中读多少字节,并把值赋给N,当读完后,N为0,并退出循环
                            n = stream.Read(bytes, 0, 10240); 
                            fs.Write(bytes, 0, n); //将指定字节的流信息写入文件流中
                        }
                    }
                }

    从上面的例子,我们可以看到HttpWebRequest操作流程是,建立链接,客户端请求,服务端响应,关闭链接四步。

  • 相关阅读:
    Spring自动代理机制
    JUnit4 详解
    struts2 OGNL
    loj4j的配置跟使用
    junit浅学笔记二
    shell变量设置
    zookeeper使用
    [zz]Linux kernel map
    glog 使用中存在的问题
    shell中特殊字符(串)
  • 原文地址:https://www.cnblogs.com/lori/p/2172761.html
Copyright © 2011-2022 走看看