Во-первых, используйте оператор using
в ответе - таким образом вы будете распоряжаться им независимо от того, что произойдет.
Теперь, если выброшено WebException
, вы можете поймать это и посмотреть на WebException.Response
, чтобы узнать код состояния и любые данные, отправленные обратно:
WebRequest request = WebRequest.Create(URL);
request.Method = "HEAD";
try
{
using (WebResponse response = request.GetResponse())
{
// Use data for success case
}
}
catch (WebException ex)
{
HttpWebResponse errorResponse = (HttpWebResponse) ex.Response;
HttpStatusCode status = errorResponse.StatusCode;
// etc
}