WebClient.uploadData ()의 시간 제한을 변경하려면 어떻게해야합니까?
-
11-09-2019 - |
문제
나는 사용 중입니다 WebClient.UploadData()
Java 서버에서 게시물을 수행합니다. 시간 제한을 어떻게 연장 할 수 있습니까? (디버깅을하려고 할 때마다 시간이 걸립니다)
해결책
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);
다른 팁
그래서 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