无法获得REST请求响应的实际错误。 Fiddler向我展示了更多错误细节。在.NET中,我得到的是500 - 内部服务器错误

时间:2012-03-30 18:16:01

标签: c# rest fiddler

在.NET中,我正在调用休息服务并获得异常 - 500 Internal Server Error

HttpWebResponse response = request.GetResponse() as HttpWebResponse

当我在Fiddler中分析它时(在TextView中),我得到很多关于导致错误的正确异常的细节。

在我的异常对象中,我无法在InnerException(它为null)和Response对象本身中获取此信息。

有什么想法吗?

2 个答案:

答案 0 :(得分:8)

尝试查看WebException.Response Property

catch(WebException ex)
{
    Console.WriteLine(ex.Message);

    if (ex.Status == WebExceptionStatus.ProtocolError)
    {
        Console.WriteLine("Status Code : {0}", ((HttpWebResponse)ex.Response).StatusCode);
        Console.WriteLine("Status Description : {0}", ((HttpWebResponse)ex.Response).StatusDescription);

        using (Stream responseStream = ex.Response.GetResponseStream())
        {
            if (responseStream != null)
            {
                using (StreamReader responseReader = new StreamReader(responseStream))
                {
                    Console.WriteLine(responseReader.ReadToEnd());
                }
            }
        }
    }
}

答案 1 :(得分:5)

“内部”异常发生在远程主机上。 WebException有一个Response属性,您可以阅读该属性以获取详细信息。