2010-05-27 11 views
4

실제 내용을 다운로드하지 않고도 VB.NET에 URI가 있는지 확인하는 가장 좋은 방법을 찾고 있습니다. System.IO.FileExists/My.Computer.FileSystem.FileExists은 파일이 있는지를 확인하기 위해 로컬로 사용할 수 있습니다. 웹에 해당하는 파일이 있습니까?VB.NET WebRequest를 사용하여 URI가 유효한지 확인하십시오.

현재 ResponseStream을 사용하여 URI 존재를 확인하기 위해 HttpWebRequest을 사용하고 있습니다. 이것은, 타겟이 존재하는 경우는 스트림을 생성 해, 그렇지 않은 경우는 예외를 슬로우합니다. 이 기능은 PDF 파일 (일반적으로 5MB 이상), 이미지 등을 확인하기 위해 확장되고 있으며 실제로 콘텐츠를 스트림에 채우는 데 시간/대역폭 낭비가됩니다.

"성공"(대상이 있음)의 경우 파일이나 페이지를 다운로드하지 않고이 URI의 끝에 뭔가 있는지 여부를 나타내는 부울로 끝납니다.

답변

9

를 확인할 수 있습니다. 주소가 (http : // 또는 https : //)으로 시작하는지 확인하십시오.

Public Function CheckAddress(ByVal URL As String) As Boolean 
    Try 
     Dim request As WebRequest = WebRequest.Create(URL) 
     Dim response As WebResponse = request.GetResponse() 
    Catch ex As Exception 
     Return False 
    End Try 
    Return True 
End Function 
+1

참고 : 활성 디렉토리 인트라넷 환경에있는 경우 당신은 아마 이것을 "희미한 요청"과 "희미한 응답"라인 사이의 코드 라인이 필요합니다 : WebRequest 클래스 =이 WebRequest.Create으로 희미한 요청 (URL) request.Credentials = CredentialCache.DefaultCredentials – Jeff

5
 HttpWebResponse response; 
     try 
     { 
      HttpWebRequest req;// Prepare request 
      response = req.GetResponse() as HttpWebResponse; 
     } 
     catch (WebException ex) 
     { 
      HttpWebResponse exResponse = ex.Response as HttpWebResponse; 
      response = exResponse;     
     } 

그리고 지금 요 그냥 VB.NET에 여기 responce.StatusCode

관련 문제