【问题标题】:Download file using webclient使用 webclient 下载文件
【发布时间】:2010-06-11 15:43:56
【问题描述】:

我尝试从 https 站点下载文件,每次将文件保存到我的机器时它只有 1KB。该文件应该是1MB。我正在使用 Webclient。

string strFile = @"c:\myfile.txt";
WebClient wc = new WebClient();
wc.Credentials = new System.Net.NetworkCredential("userid", "pw");
wc.DownloadFile("https://www.mysite.come/myfile.txt", strFile);

我有什么想念的吗?

【问题讨论】:

  • 你看过正文的内容了吗?是文件的前 1K 还是别的什么?
  • 哇,6 个问题,没有一个被接受……你应该做点什么

标签: .net webclient download


【解决方案1】:

AFAIK WebClient 默认不放置用户代理字符串,这可能会惹恼服务器;试试

wc.Headers.Add("User-Agent", "XXX");

您可以在哪里从here 接 XXX。

【讨论】:

  • 请问XXX是什么?是https地址吗?
  • 我修改了代码,它似乎给了我信息文件,而不是我想要的文件。字符串 strFile = @"c:\myfile.txt"; WebClient wc = new WebClient(); wc.Headers.Add("User-Agent", "mysite.come/"); wc.Credentials = new System.Net.NetworkCredential("userid", "pw"); wc.DownloadFile("mysite.come/myfile.txt", strFile) ;
  • no XXX 是用户代理字符串,而不是地址:它是浏览器向 http 服务器标识自己的方式;脚本可能会根据用户代理决定“阻止”请求。用户代理字符串看起来像“Opera/9.80 (X11; Linux i686; U; en-GB) Presto/2.2.15 Version/10.10”或其他。如果它匹配一个真正的浏览器就更好了
  • 谢谢。就我而言,这就是问题所在……我使用的是 HTTPS,并尝试了所有方法。我从没想过这是问题所在。
【解决方案2】:

这是您的权限伙伴,我遇到了同样的问题,但似乎没有人愿意 100% 提供帮助...权限是指您的操作系统不允许将文件下载到这就是为什么它只有 1KB。

我偶然发现了它,[PrincipalPermission(SecurityAction.Demand, Role = @"BUILTIN\Administrators")]

我会密切关注这个帖子,因为有一个标签必须添加,我已经搜索过但尚未找到,我会及时通知您。

【讨论】:

  • +1 - 应该有人指出将文件保存到根目录简直是愚蠢的
猜你喜欢
  • 2014-06-20
  • 2015-12-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多