OSDN Git Service

インスタンスで設定できる通信タイムアウトのプロパティ追加(画像アップロード対応)
authorkiri_feather <kiri_feather@users.sourceforge.jp>
Wed, 14 Jul 2010 04:20:17 +0000 (04:20 +0000)
committerKimura Youichi <kim.upsilon@bucyou.net>
Sat, 18 Feb 2012 14:14:00 +0000 (23:14 +0900)
git-svn-id: http://svn.sourceforge.jp/svnroot/tween/trunk@575 e39ad16e-3079-482e-bb30-4b4d378143b6

Tween/Connection/HttpConnection.vb
Tween/Connection/TwitPic.vb
Tween/Connection/TwitVideo.vb

index aefa883..3aa9170 100644 (file)
@@ -80,7 +80,11 @@ Public Class HttpConnection
         'cookie設定
         If withCookie Then webReq.CookieContainer = cookieContainer
         'タイムアウト設定
-        webReq.Timeout = DefaultTimeout
+        If InstanceTimeout > 0 Then
+            webReq.Timeout = InstanceTimeout
+        Else
+            webReq.Timeout = DefaultTimeout
+        End If
 
         Return webReq
     End Function
@@ -205,7 +209,11 @@ Public Class HttpConnection
         'cookie設定
         If withCookie Then webReq.CookieContainer = cookieContainer
         'タイムアウト設定
-        webReq.Timeout = DefaultTimeout
+        If InstanceTimeout > 0 Then
+            webReq.Timeout = InstanceTimeout
+        Else
+            webReq.Timeout = DefaultTimeout
+        End If
 
         Return webReq
     End Function
@@ -495,6 +503,33 @@ Public Class HttpConnection
         Return sb.ToString()
     End Function
 
+#Region "InstanceTimeout"
+    '''<summary>
+    '''通信タイムアウト時間(ms)
+    '''</summary>
+    Private _timeout As Integer = 0
+
+    '''<summary>
+    '''通信タイムアウト時間(ms)。10~120秒の範囲で指定。範囲外は20秒とする
+    '''</summary>
+    Protected Property InstanceTimeout() As Integer
+        Get
+            Return _timeout
+        End Get
+        Set(ByVal value As Integer)
+            Const TimeoutMinValue As Integer = 10000
+            Const TimeoutMaxValue As Integer = 120000
+            Const TimeoutDefaultValue As Integer = 0
+            If value < TimeoutMinValue OrElse value > TimeoutMaxValue Then
+                ' 範囲外ならデフォルト値設定
+                _timeout = TimeoutDefaultValue
+            Else
+                _timeout = value
+            End If
+        End Set
+    End Property
+#End Region
+
 #Region "DefaultTimeout"
     '''<summary>
     '''通信タイムアウト時間(ms)
index 425c7e1..e0461c8 100644 (file)
@@ -41,6 +41,7 @@ Public Class TwitPic
         param.Add("message", message)
         Dim binary As New List(Of KeyValuePair(Of String, FileInfo))
         binary.Add(New KeyValuePair(Of String, FileInfo)("media", mediaFile))
+        Me.InstanceTimeout = 60000 'タイムアウト60秒
 
         Return GetContent(PostMethod, _
                           New Uri("http://api.twitpic.com/2/upload.xml"), _
index 8eaddbf..2332da7 100644 (file)
@@ -54,6 +54,7 @@ Public Class TwitVideo
         param.Add("message", message)
         Dim binary As New List(Of KeyValuePair(Of String, FileInfo))
         binary.Add(New KeyValuePair(Of String, FileInfo)("media", mediaFile))
+        Me.InstanceTimeout = 60000     'タイムアウト60秒
 
         Dim req As HttpWebRequest = CreateRequest(PostMethod, _
                                                   New Uri(url), _