繁体   English   中英

如何更改webClient.UploadData()的时间限制?

[英]How can I change the time limit for webClient.UploadData()?

我正在使用WebClient.UploadData()在Java服务器上发布帖子。 我该如何延长时间限制? (每次我尝试进行一些调试时都会超时)

WebClient没有超时属性,但是可以从WebClient继承以在所使用的内部WebRequest上提供对Timeout的访问:

 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 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM