我愿意用示例正文字符串在 golang 中创建示例 http.Response
实例。
问题是,它的 body 属性接受 ReadCloser
实例。但作为一个虚拟响应实例,我想知道是否有一些技巧可以轻松设置它,而无需设置所有流读取/关闭部分。
最佳答案
根据 Not_a_Golfer 的建议和 JimB :
io.ReadCloser
是当 struct
同时实现 Read
和 Close
时满足的接口(interface)功能。
幸运的是,有 ioutil.NopCloser
,它接受一个 io.Reader
并将其包装在 nopCloser
结构体中,该结构体同时实现了 读取
和关闭
。但是,它的 Close
函数会执行 nothing正如名称所暗示的那样。
这是一个例子:
package main
import (
"bytes"
"fmt"
"io/ioutil"
"net/http"
)
func main() {
t := http.Response{
Body: ioutil.NopCloser(bytes.NewBufferString("Hello World")),
}
buff := bytes.NewBuffer(nil)
t.Write(buff)
fmt.Println(buff)
}
要使用代码,请单击 here .
关于http - 在 golang 中使用示例正文字符串创建 http.Response 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33978216/