c# - 从 HttpClient.GetStreamAsync 获取文件大小
问题描述
如何HttpClient
在返回之前检索我与我一起获得的文件的大小fileStreamResult
public async Task<FileStreamResult> Index(string id)
{
var urlToDownloadFromService= _upDownService.Downloadables.Find(d => d.Name == id);
HttpClient client = new HttpClient();
Stream stream = await client.GetStreamAsync(new Uri(urlToDownloadFromService.UrlSource));
var fileStreamResult = new FileStreamResult(stream, "application/octet-stream");
return fileStreamResult;
}
stream.Length
不起作用,因为ContentLengthReadStream
没有实现该方法
更新
在 dotnetcore 框架中,从对象中HttpConnection
获取长度信息的实现如下response
else if (response.Content.Headers.ContentLength != null)
{
long contentLength = Response.Content.Headers.ContentLength.GetValueOrDefault();
.
.
.
.
responseStream = new ContentLengthReadStream(this, (ulong)contentLength);
解决方案
推荐阅读
- c++ - 如何在 std::map 中查找具有至少一个数据成员等于键的结构的元素
- python - 在没有 Chrome GUI 的情况下抓取 JS 呈现的站点?
- android - 谷歌适合空数据集
- list - 在 Haskell 中实现哥德巴赫猜想,有很多限制
- python - UnpicklingError: 无效的加载键,'\x1f'
- java - 可以说“方法重载”,其中两个没有关系(扩展)的差异类具有相同的方法名称但不同类型的参数?
- arrays - Constraints in Julia
- networking - 如何让 Kubernetes 集群 (GKE) 中的 Pod 使用节点的 IP 地址与集群外的虚拟机通信
- java - 枚举和加号一起在DTD文件中?
- pandas - 如何在熊猫数据框中转发填充 NaN 值?