乐闻世界logo
搜索文章和话题

从HttpWebRequest和HttpWebResponse获取Http状态代码编号(200、301、404等)

4 个月前提问
3 个月前修改
浏览次数13

1个答案

1

在.Net框架中,使用HttpWebRequestHttpWebResponse类来发起和接收HTTP请求是非常常见的做法。通过这些类,我们可以发送HTTP请求到服务器,并获取服务器响应。获取HTTP状态代码是处理HTTP响应时的一个重要步骤,因为它告诉我们请求是否成功,或者发生了什么类型的错误。

以下是一个例子,展示如何使用HttpWebRequestHttpWebResponse来获取HTTP状态代码:

csharp
using System; using System.Net; class Program { static void Main() { try { // 创建HttpWebRequest对象 HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://example.com"); // 发送请求并获取响应 using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) { // 获取HTTP状态代码 HttpStatusCode statusCode = response.StatusCode; Console.WriteLine("HTTP 状态代码: " + (int)statusCode + " " + statusCode); } } catch (WebException ex) { // 处理异常,可能是网络错误或响应错误 if (ex.Response is HttpWebResponse errorResponse) { // 获取错误响应的HTTP状态代码 HttpStatusCode errorCode = errorResponse.StatusCode; Console.WriteLine("错误的HTTP 状态代码: " + (int)errorCode + " " + errorCode); } } } }

在这个示例中,我们首先创建了一个HttpWebRequest对象,并设置了请求的URL。然后,我们调用GetResponse方法来发起请求并获取服务器的响应。使用using关键字自动处理响应资源的释放。

GetResponse方法返回一个HttpWebResponse对象,我们可以通过它的StatusCode属性来访问HTTP状态代码。这个属性是一个枚举值HttpStatusCode,包含了所有的HTTP状态代码,例如HttpStatusCode.OK代表200,HttpStatusCode.NotFound代表404等。

如果请求过程中出现异常(如网络错误或服务器错误),异常会被捕获到catch块中。在这里我们检查异常是否包含响应(WebException.Response),如果包含,我们就可以从这个响应中获取错误的HTTP状态代码。

通过这种方式,我们可以在应用程序中根据HTTP状态代码来做出相应的处理,例如重试请求、显示错误消息等。

2024年6月29日 12:07 回复

你的答案