OSDN Git Service

pic.twitter.com への画像アップロードのタイムアウト設定を1分とする
authorKimura Youichi <kim.upsilon@bucyou.net>
Sat, 5 Nov 2016 12:06:41 +0000 (21:06 +0900)
committerKimura Youichi <kim.upsilon@bucyou.net>
Fri, 11 Nov 2016 15:11:26 +0000 (00:11 +0900)
OpenTween.Tests/Connection/TwitterApiConnectionTest.cs
OpenTween/Connection/TwitterApiConnection.cs

index 763e85c..a897a9f 100644 (file)
@@ -340,7 +340,7 @@ namespace OpenTween.Connection
             using (var http = new HttpClient(mockHandler))
             using (var apiConnection = new TwitterApiConnection("", ""))
             {
-                apiConnection.http = http;
+                apiConnection.httpUpload = http;
 
                 using (var image = TestUtils.CreateDummyImage())
                 using (var media = new MemoryImageMediaItem(image))
@@ -415,7 +415,7 @@ namespace OpenTween.Connection
             using (var http = new HttpClient(mockHandler))
             using (var apiConnection = new TwitterApiConnection("", ""))
             {
-                apiConnection.http = http;
+                apiConnection.httpUpload = http;
 
                 mockHandler.Enqueue(async x =>
                 {
index 4bbe61f..c08d1d2 100644 (file)
@@ -53,6 +53,7 @@ namespace OpenTween.Connection
         public string AccessSecret { get; }
 
         internal HttpClient http;
+        internal HttpClient httpUpload;
         internal HttpClient httpStreaming;
 
         public TwitterApiConnection(string accessToken, string accessSecret)
@@ -68,6 +69,9 @@ namespace OpenTween.Connection
         {
             this.http = InitializeHttpClient(this.AccessToken, this.AccessSecret);
 
+            this.httpUpload = InitializeHttpClient(this.AccessToken, this.AccessSecret);
+            this.httpUpload.Timeout = TimeSpan.FromMinutes(1);
+
             this.httpStreaming = InitializeHttpClient(this.AccessToken, this.AccessSecret, disableGzip: true);
             this.httpStreaming.Timeout = Timeout.InfiniteTimeSpan;
         }
@@ -223,7 +227,7 @@ namespace OpenTween.Connection
                 HttpResponseMessage response = null;
                 try
                 {
-                    response = await this.http.SendAsync(request, HttpCompletionOption.ResponseHeadersRead)
+                    response = await this.httpUpload.SendAsync(request, HttpCompletionOption.ResponseHeadersRead)
                         .ConfigureAwait(false);
 
                     await this.CheckStatusCode(response)