Я использую WebClient.UploadData()
для публикации сообщений на сервере Java. Как я могу продлить срок? (Время ожидания истекает каждый раз, когда я пытаюсь выполнить отладку)
Как я могу изменить ограничение по времени для webClient.UploadData ()?
Ответы (2)
У WebClient нет свойства тайм-аута, однако его можно наследовать от WebClient, чтобы предоставить доступ к таймауту для используемого внутреннего 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);
person
AnthonyWJones
schedule
06.08.2009
Отличный ответ. К вашему сведению, я использовал это, и он также работает с
WebClient.UploadValues()
- person AlbatrossCafe; 07.02.2017
Отлично, это так полезно!
- person Korenron; 29.01.2020
Итак, для тех, кто кодирует на 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
person
Tim
schedule
09.08.2016