【发布时间】:2015-12-03 03:51:02
【问题描述】:
我正在尝试从 url 下载一个 zip 文件夹。 url 指向 Sharepoint 中包含文档集的库。如果 URL 粘贴在浏览器中,它会下载一个 zip 文件。在尝试从代码中执行相同操作时,我只能下载 32426 字节。我尝试了两种方法——一种是使用 WebClient 的 DownloadDataAsync(),另一种是 WebRequest 和响应。这两个都只读取 32426 字节,而 zip 文件夹接近 6 MB。
using (var Webclient1 = new WebClient())
{
Webclient1.Headers.Add("Accept: text/html, application/xhtml+xml, */*");
Webclient1.Headers.Add("User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)");
byte[] data = null;
Webclient1.DownloadDataCompleted +=
delegate(object sender, DownloadDataCompletedEventArgs e)
{
data = e.Result;
};
Webclient1.DownloadDataAsync(uri);
while (Webclient1.IsBusy)
{
System.Threading.Thread.Sleep(10000);
}
var len = data.Length;
}
使用 HttpRequest 和响应
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);
//request.Proxy.Credentials = System.Net.CredentialCache.DefaultCredentials;
request.Accept = @"text/html, application/xhtml+xml, */*";
request.UserAgent = @"Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0)";
request.Timeout = 1000000;
using (var response = request.GetResponse())
{
MemoryStream stream2 = new MemoryStream();
var stream = response.GetResponseStream();
stream.CopyTo(stream2);
return stream2.ToArray();
}
两者都阅读了不完整的内容。
【问题讨论】:
标签: c# wcf httprequest uri webclient