可以从`http.ResponseWriter`获取一个`io.Writer`吗?

huangapple go评论92阅读模式
英文:

can I obtain a io.Writer from a http.ResponseWriter?

问题

我想使用json.Encoder将数据写入http.ResponseWriter

我想知道,我从哪里获取http.ResponseWriterio.Writer

io.Writerjson.NewEncoder的参数之一)

有什么想法吗?

英文:

I would like to use json.Encoder to write to a http.ResponseWriter.

I wonder, where do I get http.ResponseWriter's own io.Writer ?

(io.Writer is required as parameter for json.NewEncoder)

any ideas?

答案1

得分: 8

http.ResponseWriter 实现了 Write([]byte) (int, error)。因此,你可以在任何需要 io.Writer 的地方使用它。

func handler(w http.ResponseWriter, r *http.Request) {
    encoder := json.NewEncoder(w)
}

这里 可以找到关于Go如何使用接口来指定对象行为的一些背景信息。

英文:

http.ResponseWriter implements Write([]byte) (int, error). Therefore you can use it everywhere where a io.Writer is required.

func handler(w http.ResponseWriter, r *http.Request) {
	encoder := json.NewEncoder(w)
}

Here you can find some background information on how Go uses interfaces as a way to specify the behavior of an object.

huangapple
  • 本文由 发表于 2014年5月12日 20:52:21
  • 转载请务必保留本文链接:https://go.coder-hub.com/23609607.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定