J'utilise WebClient.UploadData()
pour faire un post sur un serveur Java. Comment puis-je prolonger la limite de temps? (Temps dehors chaque fois que je suis en train de faire du débogage)Comment puis-je modifier la limite de temps pour webClient.UploadData()?
24
A
Répondre
45
Le WebClient ne dispose pas d'une propriété de délai d'attente, mais il est possible d'hériter de la WebClient pour donner accès à délai d'attente sur le WebRequest interne utilisé:
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;
}
}
Utilisation:
var myClient = new WebClientEx();
myClient.Timeout = 900000 // Daft timeout period
myClient.UploadData(myUri, myData);
1
donc, pour ceux qui code 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
Fonction UploadFile (URL ByVal As String, ByVal CheminFichier 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
(Ceci est seulement mon deuxième post)
Grande réponse. FYI je l'ai utilisé et cela fonctionne aussi avec 'WebClient.UploadValues ()' – AlbatrossCafe