【问题标题】:How do I convert a net/http.ResponseWriter to a net/http.Response如何将 net/http.ResponseWriter 转换为 net/http.Response
【发布时间】:2018-10-14 09:19:14
【问题描述】:

首先,我故意错误地问了这个问题,希望网络搜索引擎能更好地理解我想要的问题。更准确的问题是:

如果我已经捕获了对自定义 net/http.ResponseWriter 的所有调用,如何将传递给它的值存储到 []byte 缓冲区中,如何将其转换为 net/ http.Response?

我相信答案在于 net/http.ReadResponse(),但我不确定如何正确呈现 Response 以便 ReadResponse 理解。

【问题讨论】:

  • "已捕获所有呼叫..." - 这是什么意思?您是否设法拦截了标题/正文和状态代码?您能否也发布一些代码 sn-ps 以便我们更容易理解问题:)

标签: http go


【解决方案1】:

net/http/httptest 包有一个 ResponseRecorder,可以将 ResponseWriter 转换为 Response。

如果您已捕获原始 http 文本,则可以使用 http.ReadResponse(),但如果您已经解析了标头、状态代码等内容,您也可以自己创建 new http.Request{} 结构。

查看https://golang.org/src/net/http/response.go了解详情。

【讨论】:

  • 这确实看起来像我正在寻找的东西。我必须说我对这个名字有点紧张。我应该担心在生产代码中使用它吗?
  • 我希望将此标记为已接受的答案,但我正在等待这个相关问题:stackoverflow.com/questions/52808399/…
猜你喜欢
  • 1970-01-01
  • 2021-11-02
  • 2017-07-26
  • 1970-01-01
  • 2020-09-30
  • 1970-01-01
  • 1970-01-01
  • 2022-09-27
  • 1970-01-01
相关资源
最近更新 更多