どのように私はwebClient.UploadDataの制限時間を変更することができますか()?

StackOverflow https://stackoverflow.com/questions/1237966

質問

私は、Javaサーバ上のポストを行うにWebClient.UploadData()を使用しています。どのように私は、制限時間を延長することができますか? (それはタイムアウトし、私はいくつかのデバッグを行うにしようとしていますたびに)

役に立ちましたか?

解決

Webクライアントがタイムアウトプロパティを持っていない、しかし、使用される内部のWebRequestクラスにタイムアウトへのアクセスを提供するためにWebクライアントから継承することが可能である。

 public class WebClientEx : WebClient
 {
     public int Timeout {get; set;}

     protected override WebRequest GetWebRequest(Uri address)
     {
        var request = base.GetWebRequest(address);
        request.Timeout = Timeout;
        return request;
     }
 }

使用方法:

 var myClient = new WebClientEx();
 myClient.Timeout = 900000 // Daft timeout period
 myClient.UploadData(myUri, myData);

他のヒント

それらのための、いったい誰VBのコード...

Public Class WebClientExtended
    Inherits WebClient
    Public Property Timeout() As Integer
        Get
            Return m_Timeout
        End Get
        Set(value As Integer)
            m_Timeout = value
        End Set
    End Property
    Private m_Timeout As Integer

    Protected Overrides Function GetWebRequest(address As Uri) As WebRequest
        Dim request = MyBase.GetWebRequest(address)
        request.Timeout = Timeout
        Return request
    End Function
End Class

Function UploadFile(ByVal URL As String, ByVal FilePath As String, ByVal FileName As String)

    'Call API to Upload File
    Dim myWebClient As New WebClientExtended
    myWebClient.Timeout = 10 * 60 * 1000
    Dim responseArray As Byte()
    Dim responseString As String = ""

    Try
        responseArray = myWebClient.UploadFile(URL, FilePath + "/" + FileName)
        responseString = System.Text.Encoding.ASCII.GetString(responseArray)
    Catch ex As Exception
        responseString = "Error: " + ex.Message
    End Try

    Return responseString

End Function
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top