【发布时间】:2011-01-31 22:33:42
【问题描述】:
是否可以使用 httprequest 从网站下载文件?我只习惯用它来获取页面的源代码。如果没有办法使用httprequest,有没有办法使用C#下载文件而不必使用webbrowser?
编辑:答案必须允许我选择将文件下载到的硬盘驱动器位置
【问题讨论】:
标签: c# download httprequest
是否可以使用 httprequest 从网站下载文件?我只习惯用它来获取页面的源代码。如果没有办法使用httprequest,有没有办法使用C#下载文件而不必使用webbrowser?
编辑:答案必须允许我选择将文件下载到的硬盘驱动器位置
【问题讨论】:
标签: c# download httprequest
您完全可以通过获取WebResponse 并使用其响应流来使用HttpRequest。或者,使用WebClient 及其DownloadFile 和DownloadData 方法让生活更轻松。
最终,获取二进制文件作为响应的请求和获取一些 HTML 作为响应的请求之间并没有太大区别。在某些方面,二进制响应更容易处理,因为您无需担心字符编码。
【讨论】:
WebClient.DownloadFile,要么只打开一个FileStream,然后从响应流中重复读取并将其写入文件流。如果您使用的是 .NET 4,甚至可以使用 Stream.CopyTo 来简化此操作。
Path.Combine 从文件夹名和文件名中获取完整路径。
WebRequest 来执行此操作,因为它可以使用CookieContainer,并保持登录会话,非常适合爬行。这不是我的答案,但我很高兴它为答案的创建者解决了问题。
使用 WebClient Class 来包装您通过 http 下载数据的所有需求。
获取页面源代码:
WebClient client = new WebClient ();
string src = client.DownloadString(uri);
【讨论】:
这应该可以。
using (WebClient wc = new WebClient())
{
wc.DownloadFile(downloadURL, fileName);
}
【讨论】: