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操作流程是,建立链接,客户端请求,服务端响应,关闭链接四步。

  • 相关阅读:
    LR 场景设置
    win7 快捷键
    P1903 [国家集训队]数颜色 / 维护队列(莫队区间询问+单点修改)
    A
    P1494 [国家集训队]小Z的袜子(莫队)
    P2709 小B的询问(莫队入门)
    G
    #6285. 数列分块入门 9(区间的最小众数 离散化+数列分块)
    #6284. 数列分块入门 8(区间询问等于一个数 cc 的元素,并将这个区间的所有元素改为 c)
    #6283. 数列分块入门 7(区间乘法,区间加法,单点询问)
  • 原文地址:https://www.cnblogs.com/lori/p/2172761.html
Copyright © 2011-2022 走看看