[英]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.