Ich verwende WebClient.UploadData()
, um einen Post auf einem Java-Server zu machen. Wie kann ich das Zeitlimit verlängern? (Es mal aus, jedesmal wenn ich versuche, einige Debug zu tun)Wie kann ich das Zeitlimit für webClient.UploadData() ändern?
24
A
Antwort
45
Der WebClient keine Zeit Eigenschaft hat, jedoch ist es möglich, von der WebClient zu erben Zugang zu geben, auf dem internen WebRequest verwendet 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;
}
}
Verbrauch:
var myClient = new WebClientEx();
myClient.Timeout = 900000 // Daft timeout period
myClient.UploadData(myUri, myData);
1
Also für diejenigen, die Code in 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
Funktion Upload (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
(Dies ist erst mein zweiter Beitrag)
Große Antwort. FYI Ich habe das verwendet und es funktioniert auch mit 'WebClient.UploadValues ()' – AlbatrossCafe