GetByteArrayAsync两者GetStreamAsync都返回 0 字节或空流。我想将收到的字节写入文件。
我尝试过使用byte[] stream = await _httpClient.GetByteArrayAsync("http://gscs-b2c.lge.com/downloadFile?fileId=BZhqND5RTnHcyMRDCeJJQ")and _httpClient.GetStreamAsync("http://gscs-b2c.lge.com/downloadFile?fileId=BZhqND5RTnHcyMRDCeJJQ"),但它们都返回 0 字节或空流。
我已经从 PostMan 尝试过,作为 Get 请求,它返回了一个有效的 PDF 文件。我已经从浏览器中尝试过,它返回一个有效的 PDF 文件。但在代码中它返回空文件(0 字节)。我检查了其他答案,但仍然无法解决这个问题。有趣的是,它适用于其他网站的其他 pdf 文件。
以下是我正在使用的 .net Core 2.2 中的示例代码
_client = new HttpClient();
_client.DefaultRequestHeaders.UserAgent.ParseAdd("Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36");
_client.Timeout = TimeSpan.FromMinutes(2);
System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls | System.Net.SecurityProtocolType.Tls11 | System.Net.SecurityProtocolType.Tls12;
var downloadPdfLink = "http://gscs-b2c.lge.com/downloadFile?fileId=BZhqND5RTnHcyMRDCeJJQ";
using (Stream stream = await _client.GetStreamAsync(downloadPdfLink))
{
using (var fs = new FileStream("./file/myfile.pdf",FileMode.CreateNew,FileAccess.Write))
{
//stream.Seek(0, SeekOrigin.Begin);
stream.CopyTo(fs);
}
}
预期的结果应该是返回的流被写入“myfile.pdf”。你能帮我理解这里的问题是什么,我做错了什么吗?
汪汪一只猫
相关分类