【问题标题】:Asp.net HttpWebResponse - how can I not depend on WebException for flow control?Asp.net HttpWebResponse - 我怎么能不依赖 WebException 进行流量控制?
【发布时间】:2010-06-09 12:56:38
【问题描述】:

我需要检查请求是否会返回 500 服务器内部错误(因此会出现错误)。我正在这样做:

HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest; 
request.Method = "GET";  
HttpWebResponse response = request.GetResponse() as HttpWebResponse; 

if (response.StatusCode == HttpStatusCode.OK)
     return true;
else 
    return false;

但是当我收到 500 Internal Server Error 时,会抛出一个 WebException,我不想依赖它来控制应用程序流 - 这怎么办?

【问题讨论】:

    标签: asp.net exception httpwebrequest httpwebresponse system.net.webexception


    【解决方案1】:

    我认为这篇 MSDN 文章会对你有所帮助:
    http://msdn.microsoft.com/en-us/library/system.net.webexception.status.aspx

    【讨论】:

      【解决方案2】:

      确实,鉴于 msdn 的示例,没有办法不依赖于控制流的异常。这是他们给出的例子:

      try {
         // Create a web request for an invalid site. Substitute the "invalid site" strong in the Create call with a invalid name.
           HttpWebRequest myHttpWebRequest = (HttpWebRequest) WebRequest.Create("invalid site");
      
          // Get the associated response for the above request.
           HttpWebResponse myHttpWebResponse = (HttpWebResponse) myHttpWebRequest.GetResponse();
          myHttpWebResponse.Close();
      }
      catch(WebException e) {
          Console.WriteLine("This program is expected to throw WebException on successful run."+
                              "\n\nException Message :" + e.Message);
          if(e.Status == WebExceptionStatus.ProtocolError) {
              Console.WriteLine("Status Code : {0}", ((HttpWebResponse)e.Response).StatusCode);
              Console.WriteLine("Status Description : {0}", ((HttpWebResponse)e.Response).StatusDescription);
          }
      }
      catch(Exception e) {
          Console.WriteLine(e.Message);
      }
      

      显然,有时您确实必须走那条路。啊,好吧。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-06-29
        • 1970-01-01
        • 1970-01-01
        • 2013-04-29
        • 1970-01-01
        • 2020-03-26
        • 2011-06-30
        相关资源
        最近更新 更多