我的 HttpWebRequest 有什么问题

发布于 2024-12-15 15:46:03 字数 1074 浏览 1 评论 0原文

我不知道我的代码中缺少什么。

如果我调用 404 url​​,我的代码会出现异常。

HttpWebRequest req = WebRequest.Create(args.Url) as HttpWebRequest;
req.AllowAutoRedirect = true;
req.Timeout = args.TimeOut;
req.UserAgent = args.UserAgent;   
HttpWebResponse answer = req.GetResponse() as HttpWebResponse;
objResult.Status =answer.StatusCode;
Stream stream = answer.GetResponseStream();

我在 req.GetResponse() 上遇到异常

我收到错误

远程服务器返回错误:(404) 未找到。

我不应该收到 HttpStatusCode.NotFound 吗?

解决方案:

try
      {
        HttpWebRequest req = WebRequest.Create(args.Url) as HttpWebRequest;
        req.AllowAutoRedirect = true;
        req.Timeout = args.TimeOut;
        req.UserAgent = args.UserAgent;       
        HttpWebResponse answer = req.GetResponse() as HttpWebResponse;

        objResult.Status =answer.StatusCode;       
      }
      catch (WebException ex)
      {
        HttpWebResponse response = ex.Response as HttpWebResponse;
        objResult.Status = response.StatusCode;       
      }

I dont know what are missing in my code.

If I call an 404 url my code get an exception.

HttpWebRequest req = WebRequest.Create(args.Url) as HttpWebRequest;
req.AllowAutoRedirect = true;
req.Timeout = args.TimeOut;
req.UserAgent = args.UserAgent;   
HttpWebResponse answer = req.GetResponse() as HttpWebResponse;
objResult.Status =answer.StatusCode;
Stream stream = answer.GetResponseStream();

I get an exception on req.GetResponse()

There is the error i get back

The remote server returned an error: (404) Not Found.

I am not suppose to received HttpStatusCode.NotFound ?

The solution :

try
      {
        HttpWebRequest req = WebRequest.Create(args.Url) as HttpWebRequest;
        req.AllowAutoRedirect = true;
        req.Timeout = args.TimeOut;
        req.UserAgent = args.UserAgent;       
        HttpWebResponse answer = req.GetResponse() as HttpWebResponse;

        objResult.Status =answer.StatusCode;       
      }
      catch (WebException ex)
      {
        HttpWebResponse response = ex.Response as HttpWebResponse;
        objResult.Status = response.StatusCode;       
      }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

输什么也不输骨气 2024-12-22 15:46:03

HttpWebRequest 在响应状态不成功时抛出异常。
此行为是设计使然。

您可以通过捕获 WebException 并检查其 Response 属性来获取响应。

HttpWebRequest throws an exception on non-successful response statuses.
This behavior is by design.

You can get the response by catching a WebException and checking its Response property.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文