2016-11-22 5 views
2

"HttpClient" .Netコンポーネントを使用してこの奇妙な動作が発生しています。なぜ.Net HttpClientの投稿要求が遅いのですか(フィドラーが実行されていない場合)?

投稿リクエストにファイル(1.1MB)をアップロードしています。フィドラーがオフになると、フィドラーがオンのとき約15秒かかります。約4秒かかります。

TLS1を使用してHTTPSサーバにアップロードするプロキシを使用していません。 私は私がここに述べたもの「telerik」の一部を行うことも試みた唯一の要求ではなく、必ずキープアライブ何も変更... を送信: http://www.telerik.com/blogs/help!-running-fiddler-fixes-my-app-

をしかし、それは、

を働いていませんでした

私は逃した別の設定がありますか?バッファサイズ? 「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の同じアプリを使ってうまくいきます。 –

+0

大きなファイルをアップロードするとさらに悪化します。 10MBのファイルについては、25秒後にフィドラーがオンになり、フィドラーが閉じられると約3分後にアップロードされます。 –

答えて

0

、代わりに「StreamContent」の:

...それを設定する方法がわからないこれは私がファイルをアップロードする方法です。 "MultiPartFromData" クラスHttpContentのこのタイプは、より速く5X-8Xについてです

の "追加" 方法では

multipartData.Add(new ByteArrayContent(File.ReadAllBytes(scanPath)), "fileToUpload", "\"" + Path.GetFileName(scanPath) + "\""); 
関連する問題