2013-10-18 2 views
0

WebRequest를 사용하여 인터넷 연결을 테스트 할 때마다 문제가 없습니다. 그러나 인터넷에 연결하려고 시도하는 동안 (와이파이 아래로 퇴근 후) 와이파이의 상태가에서 "no access to internet" 인 경우 다시 웹 요청을하면 그냥 작동하지 않습니다. 내가 디버깅하고 문제가 정확히 라인에 발견 : 그것은 단지 길이에 걸리고 완료되지 않습니다Net.WebRequest 너무 많은 시간이 걸리며 응답을 얻지 못함

objResp = objWebReq.GetResponse 

. 나는 그것이 점점 finist하지 않는 경우 오초처럼 마무리 기다릴 생각 사용자가이 경우에 빠진다 경우에 따라서

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 

(우리는 사용자를 희망하지 않는) : 아래

연결을 테스트 할 수있는 기능입니다 응답은 단지 objWebReq.GetResponse을 멈추고 거짓을 반환합니다. 는하지만 큰 문제는 :

가 어떻게 objWebReq.GetResponse의 시간을 측정 5 초를 기다린 5 초 이상 걸리는 경우 깨고 false를 반환 할 수 다른 true를 반환?

답변

2

요청이 5 초 후에 시간 초과되도록 설정할 수 있습니다.

자세한 내용은 WebRequest.Timeout을 참조하십시오.

시간 초과가 발생하면 catch하고 올바르게 처리해야하는 예외가 발생합니다.

하위 클래스는 상태 필드가 WebExceptionStatus.Timeout으로 설정된 WebException을 throw하여 시간 초과 신호를 보냅니다. Timeout을 Timeout.Infinite로 설정하면 하위 클래스가 시간 초과되지 않습니다.

+0

나를 두들겨 라. – pstrjds

관련 문제