WebRequest를 사용하여 인터넷 연결을 테스트 할 때마다 제대로 작동합니다. 그러나 인터넷에 연결을 시도하는 동안 (WiFi를 종료 한 후) Wi-Fi의 상태 를 "no access to internet"
다시 웹 요청을 수행하면 작동하지 않습니다. 디버깅했는데 문제가 정확히 온라인에 있음을 발견했습니다.
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를 반환 할 수 있습니까?
요청이 5 초 후에 시간 초과되도록 설정할 수 있습니다.
자세한 내용은 WebRequest.Timeout 을 참조 하세요.
시간 초과가 발생하면 예외가 발생하여 올바르게 처리해야합니다.
하위 클래스는 상태 필드가 WebExceptionStatus.Timeout으로 설정된 WebException을 throw하여 시간 초과를 알립니다. Timeout이 Timeout.Infinite로 설정되면 하위 클래스가 시간 초과되지 않습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다