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