C# 如何查看http 500从System.Net.HttpWebRequest返回的正文

C# 如何查看http 500从System.Net.HttpWebRequest返回的正文,c#,system.net.httpwebrequest,C#,System.net.httpwebrequest,我有一个web服务,它返回http 500,并在响应体中包含一些诊断信息 我在做类似的事情 Stream responseStream = null; WebResponse _Response = null; Stream responseStream = null; HttpWebRequest _Request = null; try { _Response = _Request.GetResponse(); responseStream = _R

我有一个web服务,它返回http 500,并在响应体中包含一些诊断信息

我在做类似的事情

Stream responseStream = null;
WebResponse _Response = null;
Stream responseStream = null;
HttpWebRequest _Request = null;

try
    {
        _Response = _Request.GetResponse();
        responseStream = _Response.GetResponseStream();
    }
catch   {
    //try to view the Request.GetResponse() body here.
}

由于_Request.GetResponse()返回http 500,因此似乎无法查看响应正文。据了解,这是9年前Java中的一个已知问题。我想知道今天是否有办法在.NET中实现这一点。

microsoft文档对HttpWebRequest.GetResponse返回的内容进行了详细说明。如果失败,您可以在此处查看

在你的例子中,我相信你需要检查并处理它

Stream responseStream = null;
WebResponse _Response = null;
Stream responseStream = null;
HttpWebRequest _Request = null;

try
    {
        _Response = _Request.GetResponse();
        responseStream = _Response.GetResponseStream();
    }
catch (WebException w)
{
      //here you can check the reason for the web exception
      WebResponse res = w.Response;
      using (Stream s = res.GetResponseStream())
      {
           StreamReader r= new StreamReader(s);
           string exceptionMessage = r.ReadToEnd(); //here is your error info
      }
}
catch {
    //any other exception
}

microsoft文档对HttpWebRequest.GetResponse返回的内容进行了详细分析。如果失败,您可以在此处查看

在你的例子中,我相信你需要检查并处理它

Stream responseStream = null;
WebResponse _Response = null;
Stream responseStream = null;
HttpWebRequest _Request = null;

try
    {
        _Response = _Request.GetResponse();
        responseStream = _Response.GetResponseStream();
    }
catch (WebException w)
{
      //here you can check the reason for the web exception
      WebResponse res = w.Response;
      using (Stream s = res.GetResponseStream())
      {
           StreamReader r= new StreamReader(s);
           string exceptionMessage = r.ReadToEnd(); //here is your error info
      }
}
catch {
    //any other exception
}

我相信您希望捕获WebException并在那里使用Response属性。我相信您希望捕获WebException并在那里使用Response属性。我找到了此线程并遵循了相应的答案。我找到了此线程并遵循了相应的答案。