忽略WebRequest中的失败代码?

时间:2017-01-11 12:24:33

标签: c# .net webrequest

我正在使用标准WebRequest代码从C#调用XML Web服务URL:

        WebRequest request = WebRequest.Create(MethodCall);
        WebResponse response = request.GetResponse();
        Stream stream = response.GetResponseStream();
        StreamReader streamReader = new StreamReader(stream);
        string xml = streamReader.ReadToEnd();

有问题的服务返回XML;如果出现错误,您通常仍会返回带有详细错误信息的XML,但是它还会返回HTTP错误代码400。 通过Chrome运行查询我可以在开发工具中查看XML和错误代码,但我的C#代码会在WebException调用中抛出.Net GetResponse(),因此我从未看到详细的错误信息。< / p>

有没有办法可以告诉.Net不要抛出异常但仍然要报告错误代码,所以我可以检查返回的XML?

1 个答案:

答案 0 :(得分:2)

WebResponse response = request.GetResponse();更改为

WebResponse response;
try
{
    response = request.GetResponse();
}
catch (WebException ex)
{
  response = (ex.Response as WebResponse);
  if (response == null)
      throw;
}

这应该有用。