繁体   English   中英

为什么.Net HttpClient发布请求缓慢(当提琴手未运行时)?

[英]Why .Net HttpClient post request is slow (when fiddler is not running)?

我正在使用“ HttpClient” .Net组件得到这种奇怪的行为。

我在发布请求中上传了文件(1.1MB)。 提琴手关闭时,大约需要15秒;提琴手打开时,大约需要4秒。

我没有使用任何代理,而是使用TLS1上传到HTTPS服务器。 我只发送一个请求,不确定保持活动状态有任何更改...我也尝试做一些此处提到的“ telerik”事情: http : //www.telerik.com/blogs/help! -running-fiddler -fixes-MY-APP-

但这没用

我还有其他设置吗? 缓冲区大小? 不知道如何设置。

这就是我上传文件的方式:

           HttpClient _httpClient;

            ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;
            ...
            ...
            ...

            MultipartFormDataContent multipartData = new MultipartFormDataContent();
            multipartData.Add(new StreamContent(File.OpenRead(scanPath)), "fileToUpload","\"" + Path.GetFileName(scanPath) + "\"");

            HttpResponseMessage response = await _httpClient.PostAsync("FileUpload", multipartData);

            MyObject result = await GetResultFromResponse<MyObject>(response);

通过使用“ ByteArrayContent”而不是“ StreamContent”解决。

在“ MultiPartFromData”类的“ add”方法中

这种类型的HttpContent大约快5到8倍。

multipartData.Add(new ByteArrayContent(File.ReadAllBytes(scanPath)), "fileToUpload", "\"" + Path.GetFileName(scanPath) + "\"");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM