[英]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.