【发布时间】:2014-03-06 04:26:35
【问题描述】:
我有一个大文件,我必须发送到 Web api 客户端...数据是多部分的。 问题是,如果文件是通过 http web 请求发送的,那么它会快速上传到 webapi。对于此请求,文件内容直接覆盖请求流。
如果通过 Httpclient (.net 4.5) 发送相同的文件,与 http web 请求相比,上传速度很慢。我在 Httpclient post async 中使用 multipartformdatacontent。
那么,对于大文件,我们必须只使用网络请求吗?或者 Httpclient 上是否有任何设置可以加快上传速度?
【问题讨论】:
-
HttpWebREquest 为单个请求建模。 HttpClient 模型,嗯,一个客户端——发出多个请求的东西。 HttpClient 是较新的,因此更有可能拥有最新的知识。虽然,我不知道它在某些领域是否特别快;但如果您在 WebAPI 空间或 REST 中做任何事情,当然更推荐。
-
HttpClient 在后台使用 HttpWebRequest 来实际发出 HTTP 请求,因此您应该能够获得相同的性能。
-
是的..但性能再次取决于内容如何通过客户端传递..我使用 FileStreamContent,现在我已更改为 ByteArrayContent...
标签: c#-4.0 asp.net-web-api dotnet-httpclient