2013-10-18 95 views
0

每當使用WebRequest來測試互聯網連接都可以正常工作。然而,當試圖連接到互聯網(在關閉wifi後)並且有WiFi的狀態"no access to internet"如果我再次執行webrequest,它就不起作用。 我已經調試,發現問題是完全在線:Net.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數秒如果它不finist得到響應只是停止objWebReq.GetResponse然後返回False。 但是,偉大的問題是:

我如何衡量objWebReq.GetResponse的時間和等待5秒鐘 如果服用超過5秒休息,返回false 否則返回true?

回答

2

您可以將您的請求設置爲5秒後超時。

請參閱WebRequest.Timeout瞭解詳細信息。

如果發生超時,將拋出一個異常,應該捕獲並正確處理。

後代類通過拋出WebException並將狀態字段設置爲WebExceptionStatus.Timeout來表示超時。當Timeout設置爲Timeout.Infinite時,後代類不超時。

+0

打敗我說。 – pstrjds

相關問題