我正在调用一个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
属性。