2013-12-10 14 views
0

URL이 인터넷에서 유효한지 확인하기 위해 프로그램을 코딩하고 있습니다. 웹에서 검색 한 결과 URL의 존재를 확인하는 거의 모든 방법이 try catch입니다. 하지만 URL을 확인하기 위해 try catch을 사용하고 싶지 않습니다. URL 만 있는지 확인하기 위해 속성이나 방법 또는 다른 방법을 사용하고 싶습니다. 어떻게해야합니까? 난 당신이 파일은 파일 시스템에 존재하는지 여부를 확인하려고 ...try catch를 사용하지 않고 URL에있는 파일을 검사하는 방법

귀하의 질문은 조금 혼란, 2008

+1

어떤 이유에서 Try Catch 블록을 피하려고합니까? –

+0

URL의 유효성을 검사하고 있습니까? 정규식을 사용하지 않는 이유는 무엇입니까? – azisfatoni

+0

@ Pierre-LucPineault - 좋은 코딩 방법은 가능한 모든 알려진 오류를 try/catch 블록에 모두 넣지 않고 모든 유효성 검사를 수행하지 않고 유효성을 검사하고 시도해야한다고 말합니다. try/catch 외부에 파일이 있는지 확인하는 것이 좋습니다. – Scottie

답변

7

메이트 Visual Studio를 사용하고 있습니다? 아니면 웹 사이트/페이지가 인터넷 어딘가에 존재하는지 확인하려고합니까?

당신의 파일 시스템 사용에있는 파일을 확인하려고하면 ....

System.IO.File.Exists

웹 페이지는 인터넷에 존재하는지 여부를 확인하려는 경우 아닙니다. 글쎄, 당신이 HTTP 요청을하고 서버에서 응답을 다시 확인하도록 강요 당하면서 안전하게이 작업을 수행 할 수있는 방법은 없습니다. 응답은 HTTP 코드가 될 것이며 불행하게도 HttpRequest/HttpResponse의 .NET Framework 래퍼가 같은 500, 404, 403, 401 등

그것을 희망 HTTP 오류 코드에 대한 예외는 당신이 URL을 검증하기 위해 노력 여부에 따라 이에 대한 대답은 GET 또는 경우 존재 의미를

+0

많은 의견을 보내 주셔서 감사합니다. – truongdung0502

0

한다 GET과 POST 또는 HTTP 메소드의 조합을 지원합니다. 나는 당신이 GET을 사용하고 있다고 가정 할 것이다.

오픈 소스 코드를 사용할 수 있습니까? 빠른 검색에서이 라이브러리 http://www.codescales.com/이 예외를 발생시키지 않는 것처럼 보입니다.

완전성을 위해 .NET 4.5를 사용할 수있는 경우 새 System.Net.Http.HttpClient은 2xx가 아닌 응답에 예외를 발생시키지 않습니다.

예외는 비용이 많이 드는 작업이지만 초당 수백 또는 수천 개의 요청을 수행하지 않는 한 걱정할 필요가 없습니다. 초당 수십 번이 작업을 수행하는 데 드는 비용은 무시해도 좋습니다.