当服务器在WebRequest.Create(URL). getresponse()上发送500个错误时,我如何获得re



我正在调用一个json web服务,通过设置StatusCode为500发送错误消息,然后发送错误消息作为响应文本(例如{" message ": "InvalidUserName"})。

问题是ASP。如果web服务发送状态码500,NET不给我响应文本。

try
{
    WebRequest request = WebRequest.Create(URL);
    request.Method = "POST";
    request.ContentType = "application/json; charset=utf-8";
    HttpWebResponse response = (HttpWebResponse)request.GetResponse();
    StreamReader streamReader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
    string result = streamReader.ReadToEnd();
    streamReader.Close();
    response.Close();
    return result;
}
catch (Exception e)
{
    // If web service sends 500 error code then we end up here. 
    // But there is no way to get response text :-(
}

有办法解决这个问题吗?另外:我正在控制web服务,所以它可能是做一些改变他们的解决方案。(注意:我需要使用普通的WebRequest的东西调用服务-在这种情况下,它不会与其他方法,如添加WebReference等工作)

任何想法?

改为捕获WebException。它有一个包含响应的Response属性。

最新更新