我有一个诊断工具,用于测试Web服务。

我希望该工具在出现问题时报告,因此我已经部署了一个契约(Contract)有问题的服务以对其进行测试。

当我浏览到它时,我得到一个页面,上面有非常描述性的消息,例如:



我想要的是能够打电话给:

myErrorMsg = WebClient.DownloadString("MyBadService.svc");

并以字符串形式获取此有用的错误消息,但是我得到以下WebException:



如何获得我在浏览器中收到的相同错误消息,以字符串形式返回,而没有发生异常?

谢谢。

最佳答案

您必须捕获异常并阅读响应。

catch (WebException exception)
{
  string responseText;

  var responseStream = exception.Response?.GetResponseStream();

  if (responseStream != null)
  {
      using (var reader = new StreamReader(responseStream))
      {
         responseText = reader.ReadToEnd();
      }
  }
}

关于c# - 以字符串形式获取WebClient错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7036491/

10-11 07:47