WebClient.DownloadFileAsync底层实现

时间:2011-12-25 12:31:39

标签: c# webclient

有谁知道WebClient.DownloadFileAsync是如何实现的? 我对此有几个问题:

  1. 返回的流是保存在内存中,直到整个文件下载还是直接缓冲到临时文件中(然后复制到正确的路径)?或直接进入指示的文件?
  2. 编写一个简单的WCF休息服务来回答这些调用需要以下内容:

    set response headers - Content-Type: application/octet-stream  
                           Content-Length: 3 
                           Content-Disposition: Attachment;
                           filename=SomeFileName.jpeg 
    

    并返回一个字节[]

  3. 我错过了什么吗?

1 个答案:

答案 0 :(得分:0)

  1. 以块的形式读取响应流,并将这些块直接写入输出文件流,整个文件不会加载到内存中。
  2. WebClient并不关心服务器发送的标头。它读取响应流并将其以块的形式保存到输出文件中。