【问题标题】:How to get the response stream on a non 201 status code如何获取非 201 状态码的响应流
【发布时间】:2009-10-28 09:43:27
【问题描述】:

我在从返回状态码 422 的请求中获取响应流时遇到问题。

HttpWebResponse objResponse = (HttpWebResponse)wr.GetResponse();

wr.GetResponse 引发 web 异常,因为状态码不是 201。
所以我永远无法从远程服务器获取响应流。但它确实会在 ResponseStream 中返回重要信息。

所以我的问题是如何在不返回 201 但仍返回数据的请求中检索 ResponseStream。

【问题讨论】:

    标签: c# http response webrequest


    【解决方案1】:

    抛出的 WebException 包含对响应的引用,您可以从中获取响应流。

    catch(WebException ex)
    {
         ex.Response.GetResponseStream();
    }
    

    【讨论】:

      【解决方案2】:

      使用 TcpClient 并手动发送 HTTP 请求。这是一个非常简单的请求格式。

      【讨论】:

      • 猜猜这可能是一个解决方案。但是没有办法使用 HttpWebResponse/HttpWebRequest
      • 我想你可以测试一下 StatusCode,然后查看 Headers 集合,看看服务器返回给你的头信息是什么
      • 嗯,是的,你猜这是可能的。但问题是它在 ResponseBody (ResponseStream) 中返回数据。所以我在查看标题时无法访问该数据
      猜你喜欢
      • 2011-07-17
      • 1970-01-01
      • 2020-01-10
      • 2015-05-21
      • 1970-01-01
      • 1970-01-01
      • 2021-08-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多