正在下载的文件文件大小太大



>我使用以下代码下载 excel 文件,它可以工作,但正在下载的文件太大。

using (var wc2 = new WebClient())
{
    ServicePointManager.Expect100Continue = true;
    ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
    ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
    wc2.Headers.Add("User-Agent", "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)");
    // 
    //wc2.DownloadFileAsync(fileUri, AppDomain.CurrentDomain.BaseDirectory + "\demo\" + fileName);
    wc2.DownloadFile("https://ds.postnord.com/v2/ptm/file/download/5184.22306", AppDomain.CurrentDomain.BaseDirectory + "\demo\test.xls");
}

如果我使用浏览器下载文件,它可以正常工作,但不使用上面的代码。但是,如果我尝试使用上面的代码从某处下载 jpg 文件,它可以工作。这里可能有什么问题?

如果使用 Web 客户端下载的 Excel 文件已损坏:

您应该添加用户代理标头,接受标头并使用接受编码。

此外,还需要授权;否则,下载的文件将是只读的。

以下代码将下载您的 excel 文件而不会损坏或任何其他问题:

string Url = "https://ds.postnord.com/v2/ptm/file/download/5184.22306";
string accessToken = "" ;
WebClient c = new WebClient();
c.Headers.Add("Accept: text/html, application/xhtml+xml, application/pdf, */*");
c.Headers.Add("User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)");
c.Headers.Add("Accept-Encoding: gzip, deflate, br");
c.Headers["Authorization"] = accessToken;
c.DownloadFile(Url, @"c:\downloaded6.xlsx");

相关内容

  • 没有找到相关文章

最新更新