I'm getting this weird behavior using "HttpClient" .Net component.
I'm uploading a file (1.1MB) in a post request. When fiddler turn off it's takes about 15 sec when fiddler is on it's takes about 4 sec.
I'm not using any proxy, uploading to a HTTPS server using TLS1.
I send only one request, not sure the keep-alive changing anything...
I tried also to do some of the things "telerik" mentioned here:
But it didn't worked,
Is there another setting that I missed? Buffer size? not sure how to set it..
This is how I upload the file:
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);
Solved by using "ByteArrayContent", instead of the "StreamContent".
In the "add" method of the "MultiPartFromData" class
This type of HttpContent is about 5X-8X faster.
multipartData.Add(new ByteArrayContent(File.ReadAllBytes(scanPath)), "fileToUpload", "\"" + Path.GetFileName(scanPath) + "\"");