这就造成了当使用HttpWebRequest访问时,不成功就会出现System.Net.WebException: ‘The remote server returned an error: (500) Internal Server Error.’报错(如下图),获取不到结果了。
怎么办呢,这里只能通过获取异常,然后将异常的相应结果返回。
用下面的代码就不论500错误是否发生,都能获取到Web Service返回值的源代码。
//500 error but get the message
HttpWebResponse res;
try
{
res = (HttpWebResponse)webRequest.GetResponse();
}
catch (WebException ex)
{
res = (HttpWebResponse)ex.Response;
}
StreamReader sr = new StreamReader(res.GetResponseStream() ?? throw new InvalidOperationException(), Encoding.UTF8);
var result = sr.ReadToEnd();