首页 新闻 会员 周边 捐助

List<string>的集合的批量下载

0
悬赏园豆:60 [已关闭问题] 关闭于 2015-06-23 11:13

有个List<string>的集合,里面每个元素记录着一个下载地址。

需求是这样的:在mvc的一个方法中对List<string>集合里的每个元素进行读取并且一次性下载完List<string>里的每个地址。

问题是这样的:如果我循环集合进行下载就会报“收到了来自服务器的重复标头来自服务器的响应包含重复报头的问题”Content-disposition的错误。

我知道用循环是不能解决问题的,请问怎么解决实现我的需要。谢谢!

mystery2c的主页 mystery2c | 初学一级 | 园豆:3
提问于:2015-03-16 15:53
< >
分享
所有回答(6)
0

你的意思是:

在一个请求里,下载list里的所有文件数据?

519740105 | 园豆:5810 (大侠五级) | 2015-03-16 16:03

是的

支持(0) 反对(0) mystery2c | 园豆:3 (初学一级) | 2015-03-16 16:05

@高山兀鹫: 自然不能写多个同名头。

如果你这样的需求,只能输出一个文件。

如果你要输出多个文件,则需要自己编写客户端代码,或者分开单独请求。

支持(0) 反对(0) 519740105 | 园豆:5810 (大侠五级) | 2015-03-16 16:58

@高山兀鹫: 或者,比如输出为zip压缩,将所有的文件打包到一个zip中,然后输出的文件名为zip的文件名。

支持(0) 反对(0) 519740105 | 园豆:5810 (大侠五级) | 2015-03-16 16:59

@519740105: 请问这个应该怎么实现啊

支持(0) 反对(0) mystery2c | 园豆:3 (初学一级) | 2015-03-16 17:00

@高山兀鹫: 现成的ZIP模块,比如sharplib里就有一个zip,实现多文件压缩成一个zip。

支持(0) 反对(0) 519740105 | 园豆:5810 (大侠五级) | 2015-03-16 17:01
0

构造webclient进行下载,每次循环,请求头header参数(如文件名等)不同。

JeffWong | 园豆:2328 (老鸟四级) | 2015-03-16 17:48

这个得怎么设置啊

支持(0) 反对(0) mystery2c | 园豆:3 (初学一级) | 2015-03-23 09:47
0

应该循环创建请求,而不是一个请求搞定。除非服务端提供批量下载的api。

幻天芒 | 园豆:37207 (高人七级) | 2015-03-17 09:16

请问这个循环创建请求应该是怎么做?

支持(0) 反对(0) mystery2c | 园豆:3 (初学一级) | 2015-03-23 09:50

@高山兀鹫: 在循环体内实例化HttpClient这样的东东~

支持(0) 反对(0) 幻天芒 | 园豆:37207 (高人七级) | 2015-03-24 10:02
0

一个请求建立一个webclient,这样算一个循环,应该就实现了

刘宏玺 | 园豆:14020 (专家六级) | 2015-03-17 10:30
0
        static void Main(string[] args)
        {
            List<string> list = new List<string>()
            {
                "http://bbs.unpcn.com/attachment.aspx?attachmentid=3827974",
                "http://b.hiphotos.baidu.com/image/pic/item/f603918fa0ec08fa587802075aee3d6d55fbda11.jpg"
            };

            foreach (var item in list)
            {
                WebClient w = new WebClient();
                Uri u = new Uri(item);
                w.DownloadFileAsync(u,System.Guid.NewGuid().ToString("N")+".jpg");
            }
        }

成功下载所有图片

需要格局 | 园豆:2145 (老鸟四级) | 2015-03-17 17:49

哥们,这个跟我的代码不行呀

 

支持(0) 反对(0) mystery2c | 园豆:3 (初学一级) | 2015-03-23 09:48
0

这种操作,对于正规一点的网站都会把你屏蔽了,赤裸裸的数据爬取。

 

可以考虑一下挂代理。

muscle1990 | 园豆:227 (菜鸟二级) | 2015-03-23 14:25
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册