使用Flurl将流响应发布并保存到文件的正确方法是什么

托马斯

我正在尝试实现一个异步POST文件,并使用Flurl直接读取对文件的响应。下面的代码可以正常工作,但不能确定使用c.Result.CopyToc.Result.CopyToAsync将文件写入流哪种方法正确?

var result = new Url(url)
                .WithHeader("Content-Type", "application/octet-stream")
                .PostAsync(new FileContent(Conversion.SourceFile.FileInfo.ToString()))
                .ReceiveStream().ContinueWith(c =>
                {
                    using (var fileStream = File.Open(DestinationLocation + @"\result." + model.DestinationFileFormat, FileMode.Create))
                    {
                        c.Result.CopyTo(fileStream);
                        //c.Result.CopyToAsync(fileStream);
                    }
                });

            if (!result.Wait(model.Timeout * 1000))
                throw new ApiException(ResponseMessageType.TimeOut);
托德·梅尼尔

您当然可以CopyToAsync在这里使用,但是如果您避免使用ContinueWith,它会更干净,因为引入async/以来,它通常没有那么有用await它还使配置HTTP流更干净。我会选择这样的东西:

var request = url.WithHeader("Content-Type", "application/octet-stream");
var content = new FileContent(Conversion.SourceFile.FileInfo.ToString());

using (var httpStream = await request.PostAsync(content).ReceiveStream())
using (var fileStream = new FileStream(path, FileMode.CreateNew))
{
    await httpStream.CopyToAsync(fileStream);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用Mongoengine和Pyramid将数据保存到嵌入式文档的正确方法是什么?

将哈希表保存到文件的最佳方法是什么?

将复杂字典保存到文件的最佳方法是什么?

使用Content Sheme时保存文件的正确方法是什么?

如何使用方法CreatedAtRoute()响应发布请求

将列表保存到文件并在熊猫上加载 id 的最佳方法是什么?

将平铺网格保存到 Java 游戏的文本文件的最佳方法是什么?

将数组保存到可以重新加载的文件的最佳方法是什么

将“纱线审核”结果保存到文本文件的最佳方法是什么?

使用python将位流保存到文件

Delphi-使用流将记录保存到文件

使用 PostProcessor 将响应保存到 JMeter 中的文件

将映像路径保存到mongodb的方法是什么?

将排序保存到sql的最佳方法是什么?

使用Dataproc将Google Pub / Sub与Flink流一起使用的正确方法是什么?

Laravel Ajax响应发布方法

将响应从请求保存到文件

将ajax响应保存到文件

通过请求将响应保存到文件

使用NSURLSession进行POST,发布变量的正确方法是什么?

使用改造 2 和 moshi 发布的正确方法是什么

在iOS应用中将少量数据保存到磁盘的最正确方法是什么?

使用ajax将php响应发布到div中不起作用

确认芹菜发布的正确方法是什么?

使用不起作用的流将文件保存到Azure存储

将数字数据(保存在文本文件中)读入python的正确方法是什么?

PiCamera将流数据保存到图像文件中

将Doobie流从数据库保存到文件

Gstreamer 1.0将rtsp流保存到文件