[英]Web client request gets hanged if Internet is disconnected while executing it using
我正在使用Web客戶端向服務器發送一些請求參數,然后根據請求獲得響應。 但是我每次嘗試發送Web客戶端請求時都面臨的問題是,如果在發送請求時Internet斷開連接,它將使我的應用程序掛起。 有時它會使應用程序崩潰。 我的代碼段如下。
WebClient webClient=new WebClient()
userData = webClient.UploadValues(URL, "POST", parameters);
`
如果執行該行(如果Internet斷開連接),它將掛起應用程序。
您可以擴展WebClient,因此它將超時。 嘗試這個:
class WebClientWithTimeout : WebClient {
public WebClientWithTimeout(int timeout) {
_timeout = timeout
}
// Timeout in seconds
int _timeout;
protected override WebRequest GetWebRequest(Uri uri) {
WebRequest webRequest = base.GetWebRequest(uri);
webRequest.Timeout = 1000 * _timeout;
return w;
}
}
private class YourWebClient : WebClient
{
protected override WebRequest GetWebRequest(Uri uri)
{
WebRequest wr = base.GetWebRequest(uri);
wr.Timeout = 7 * 1000;
return wr;
}
}
您可以根據需要更改超時時間。 我已經對其進行了測試,並且對我有用。 實際上, webclient
默認超時時間是100秒,但默認情況下大約需要20到25或30秒。因此,您可以根據自己的響應(知道服務器要花費多少時間)進行更改。 您也可以使用threads
獨立處理此代碼,而UI
不會掛起。
希望它會有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.