每当使用 WebRequest 测试互联网连接时都可以正常工作。但是,当我尝试连接到互联网(关闭 wifi 后)并获得wifi 的状态时,"no access to internet"
如果我再次执行 webrequest,它就无法正常工作。我已经调试并发现问题完全在线:
objResp = objWebReq.GetResponse
它只需要很长时间并且不会完成。
下面是测试连接的函数:
Dim objUrl As New System.Uri("http://www.google.com")
Dim objWebReq As System.Net.WebRequest
objWebReq = System.Net.WebRequest.Create(objUrl)
Dim objResp As System.Net.WebResponse = Nothing
Try ' Attempt to get response and return True
objResp = objWebReq.GetResponse
objResp.Close()
objWebReq = Nothing
Return True
Catch ex As Exception
objResp = Nothing
objResp.Close()
objWebReq = Nothing
Return False
End Try
因此,如果用户陷入这种情况(我们希望用户不会),我正在考虑等待 5 秒来完成,如果它没有得到响应,就停止objWebReq.GetResponse
然后返回 False。但最大的问题是:
如何测量 objWebReq.GetResponse 的时间并等待 5 秒,如果中断时间超过 5 秒并返回 false 否则返回 true ?