下面是我之前编写的一些代码,欢迎您使用它们来处理这个场景。
如果抛出异常,您可以通过捕捉WebException来获取状态代码。
public class WebResult
{
public string Response { get; set; }
public bool WasSuccessful { get; set; }
public HttpStatusCode? StatusCode { get; set; }
}
public WebResult GetUrlContents(string url)
{
try
{
var request = (HttpWebRequest)WebRequest.Create(url);
using (var response = (HttpWebResponse)request.GetResponse())
using (var responseStream = new StreamReader(response.GetResponseStream()))
{
return new WebResult
{
WasSuccessful = true,
Response = responseStream.ReadToEnd(),
StatusCode = response.StatusCode
};
}
}
catch (WebException webException)
{
return new WebResult
{
Response = null,
WasSuccessful = false,
StatusCode = (webException.Response as HttpWebResponse)?.StatusCode
};
}
}