2016-11-22 3 views
2

"HttpClient".Net 구성 요소를 사용하여 이상한 동작이 나타납니다..Net HttpClient 게시 요청이 느린 이유는 (피들러가 실행되지 않는 경우)?

게시물 요청에 파일 (1.1MB)을 업로드하고 있습니다. 피 들러가 켜지면 피들러가 켜져있을 때 약 15 초가 걸리고 약 4 초가 걸립니다.

TLS1을 사용하여 HTTPS 서버에 업로드하는 프록시를 사용하고 있지 않습니다. 나는 하나 개의 요청 만, 확실하지 킵 얼라이브 변경 아무것도 ... 내가 여기에 언급 된 "telerik"있는 몇 가지 할도 시도 보내 http://www.telerik.com/blogs/help!-running-fiddler-fixes-my-app-

을하지만이 일을하지 않았다을,

놓친 다른 설정이 있습니까? 버퍼 크기? 를 설정하는 방법을 잘하지 ..

이 내가 파일을 업로드하는 방법입니다 : 대신 "StreamContent"의 "ByteArrayContent"을 사용하여 해결

  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); 
+0

'HttpClient'와는 관계가 없으며 연결 속도가 느리거나 네트워크 설정이 엉망입니다. –

+0

글쎄 내 연결은 같은 PC를 사용하여 똑같은 앱을 사용하는 것이 좋으며 약 350℅ 빠르게 업로드 할 수 있습니다. –

+0

더 큰 파일을 업로드 할 때 더욱 악화됩니다. 10MB 파일의 경우 피들러가 25 초 동안 켜지고 피들러가 닫힌 경우 약 3 분이되면 업로드됩니다. –

답변

0

합니다. 은 "MultiPartFromData"클래스 HttpContent의이 유형은 빠른 5 배 - 8 배에 관한

의 "추가"방법에서

.

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