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

本文转自博客园张占岭(仓储大叔)的博客,原文链接:WebRequest之HttpWebRequest实现服务器上文件的下载(一),如需转载请自行联系原博主。

时间: 2024-10-09 03:25:22

WebRequest之HttpWebRequest实现服务器上文件的下载(一)的相关文章

怎么用java显示ftp服务器上文件夹中的图片在jsp页面上?

问题描述 怎么用java显示ftp服务器上文件夹中的图片在jsp页面上? ftp在另一台windows上,访问jsp页面要读取并显示出ftp上的图片. ftp上的图片路径保存在数据库中,操作ftp的jar我选了apache的FtpClient. 现在的问题是,action获取到ftp上的文件后,是下载下来再读取成流输出到页面呢?还是直接从FTP获取成流输出到页面?如果有,求思路,最好有代码举例我不想ftp上的文件下载到部署环境上然后再输出到页面,想通过读取ftp的流直接显示到页面,页面关闭后流就

本地预览-服务器上到项目下载到本地后,如何预览

问题描述 服务器上到项目下载到本地后,如何预览 预览错误如下 解决方案 php服务器有没有装好,如果是iis,先在添加删除windows功能中启用php 解决方案二: 这个问题后来自己在打开phpstudy的时候发现是80端口被占用了,导致我进不去自己的站点,解除占用后就好了, 解决方案三: 1.先确认你的服务器上文件是否存在.在IIS中,选中你的WEBService,右键,浏览.文件夹中是否可以正确查看路径文件. 2.如果文件存在,选中你的WEBService,右键,管理应用程序,浏览.网页访

搜索-android用户从服务器上查询并下载多张图片的思路或实现,应该使用哪种连接方式呢

问题描述 android用户从服务器上查询并下载多张图片的思路或实现,应该使用哪种连接方式呢 android想实现一个用户从服务器上先查询,如图片名,然后自动下载多张相关图片的实现.应该使用哪种网络连接方式进行查询下载呢? 查询框期望是使用EditText,点击查询按钮进行查询.并且在输入时可以有下拉提示,如我输入"A",下拉列表中自动弹出并提示以往记录或者"aaAB....."等信息. 解决方案 图像特征数据推荐存储到数据库里面然后,根据用户在 edittext

jsp页面调用本地插件完成对本地文件与服务器上文件的同步更新

问题描述 大家 有没有写过如题的功能,因为我现在需要每次点jsp页面的 更新按钮时,需要将本地文件的版本与服务器上的文件进行版本对比,将需要更新的文件进行下载,解压,我想通过写插件,完成这种需求,但是没有写过类似的东西,希望写过此功能的拿们,指点.............. 问题补充:kidding87 写道 解决方案 这个是我在microsoft上面找的Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINESOFTWAREMicrosof

asp.net用代码压缩服务器上文件夹或文件

实现过程 1)先引用 ICSharpCode.SharpZipLib.dll: 2).cs文件引入 using System.IO; using System.Text; using ICSharpCode.SharpZipLib.Checksums; using ICSharpCode.SharpZipLib.Zip; using ICSharpCode.SharpZipLib.GZip;   3)代码   #region 下列代码为压缩并下载代码        ZipOutputStream

android 从服务器上获取APK下载安装

简单的为新手做个分享.  网上有些资料,不过都是很零散,或是很乱的,有的人说看不懂. 一直有新手说 做到服务器更新APK时没有思路,这里做个简单的分享,希望有不同思路的可以讨论.  下面做个很简单的读取处理和讲解思路. 代码带有注释: try { URL url = new URL(params[0]); HttpURLConnection connection = (HttpURLConnection) url .openConnection(); connection.setConnectT

为什么我本地运行的程序是好的 到了服务器上就出错

问题描述 为什么我本地运行的程序是好的 到了服务器上就出错 本地运行都是好的 到了服务器上 文件导入的时候就出错 到底什么原因呢?有没有大神们知道? 解决方案 服务器环境和你本地环境一样不? 解决方案二: 下次问的时候,可以把问题描述的清楚一点.现在看来,就是环境没有配置好 解决方案三: 下次问的时候,可以把问题描述的清楚一点.现在看来,就是环境没有配置好 解决方案四: 根据你的描述.很大可能性是由于环境配置不同导致. 解决方案五: VC Debug程序可以运行,而Realse版本运行出错 解决

如何把服务器上的文件下载到客户端呢?

问题描述 如何把服务器上的文件下载到客户端呢?请提供代码,谢谢! 解决方案 解决方案二:<ahref="你的文件路径">下载</a>解决方案三:樓上正確.除此之外,可以將文件以流的方式向客戶端輸出.解决方案四:你好,我想將文件以流的方式向客戶端輸出,请问怎么实现呢?解决方案五:大致如下,請參考:FileStreamfs=newFileStream("絕對路徑",FileMode.Open,FileAccess.Read);BinaryRead

java基于Apache FTP实现文件上传、下载、修改文件名、删除_java

Apache FTP 是应用比较广泛的FTP上传客户端工具,它易于操作,代码简略,结构清晰,是做FTP文件客户端管理软件的优先之选.FTP的操作包括:FTP文件上传(断点续传).FTP文件下载.FTP文件重命名.FTP文件删除,这些操作已经将FTP应用管理的方式发挥的淋漓尽致了,So 我一直都用此种方式来实现FTP文件服务器的管理工作:下附FTP工具代码. 1.FTP文件操作状态枚举类 package com.scengine.wtms.utils.ftp; public enum FTPSta