OSDN Git Service

IHttpRequest.Timeoutでリクエスト毎にタイムアウト時間を設定可能にする
authorKimura Youichi <kim.upsilon@bucyou.net>
Mon, 11 Dec 2023 18:16:05 +0000 (03:16 +0900)
committerKimura Youichi <kim.upsilon@bucyou.net>
Tue, 12 Dec 2023 17:45:43 +0000 (02:45 +0900)
OpenTween/Connection/DeleteRequest.cs
OpenTween/Connection/GetRequest.cs
OpenTween/Connection/IHttpRequest.cs
OpenTween/Connection/PostJsonRequest.cs
OpenTween/Connection/TwitterApiConnection.cs

index e8bd353..60927f2 100644 (file)
@@ -35,6 +35,8 @@ namespace OpenTween.Connection
 
         public string? EndpointName { get; set; }
 
+        public TimeSpan Timeout { get; set; } = Networking.DefaultTimeout;
+
         public HttpRequestMessage CreateMessage(Uri baseUri)
             => new()
             {
index 48682c3..2a9791d 100644 (file)
@@ -35,6 +35,8 @@ namespace OpenTween.Connection
 
         public string? EndpointName { get; set; }
 
+        public TimeSpan Timeout { get; set; } = Networking.DefaultTimeout;
+
         public HttpRequestMessage CreateMessage(Uri baseUri)
             => new()
             {
index 55dd9e3..ab309cb 100644 (file)
@@ -30,6 +30,8 @@ namespace OpenTween.Connection
     {
         string? EndpointName { get; }
 
+        TimeSpan Timeout { get; }
+
         HttpRequestMessage CreateMessage(Uri baseUri);
     }
 }
index 715d541..236bfe6 100644 (file)
@@ -35,6 +35,8 @@ namespace OpenTween.Connection
 
         public string? EndpointName { get; set; }
 
+        public TimeSpan Timeout { get; set; } = Networking.DefaultTimeout;
+
         public HttpRequestMessage CreateMessage(Uri baseUri)
             => new()
             {
index 0e86060..db00455 100644 (file)
@@ -75,6 +75,9 @@ namespace OpenTween.Connection
         {
             this.Http = InitializeHttpClient(this.Credential);
 
+            // タイムアウト設定は IHttpRequest.Timeout でリクエスト毎に制御する
+            this.Http.Timeout = Timeout.InfiniteTimeSpan;
+
             this.HttpUpload = InitializeHttpClient(this.Credential);
             this.HttpUpload.Timeout = Networking.UploadImageTimeout;
         }
@@ -94,7 +97,7 @@ namespace OpenTween.Connection
             {
                 responseMessage = await HandleTimeout(
                     (token) => this.Http.SendAsync(requestMessage, HttpCompletionOption.ResponseHeadersRead, token),
-                    Networking.DefaultTimeout
+                    request.Timeout
                 );
 
                 if (endpointName != null)