我怎样才能改变webClient.UploadData的时间限制()?
-
11-09-2019 - |
题
我使用WebClient.UploadData()
做一个Java服务器上的职位。如何延长时间限制? (据我试图做一些调试,每次超时)
解决方案
在Web客户端不具有超时属性,但它是可以从Web客户端继承给访问超时上所使用的内部的WebRequest:
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
不隶属于 StackOverflow