簡體   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