http - 在 golang 中使用示例正文字符串创建 http.Response 实例

标签 http go response

我愿意用示例正文字符串在 golang 中创建示例 http.Response 实例。

问题是,它的 body 属性接受 ReadCloser 实例。但作为一个虚拟响应实例,我想知道是否有一些技巧可以轻松设置它,而无需设置所有流读取/关闭部分。

最佳答案

根据 Not_a_Golfer 的建议和 JimB :

io.ReadCloser 是当 struct 同时实现 ReadClose 时满足的接口(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/

相关文章:

go - 第二个bufio.Scanner for stdin不读取任何内容

go - 在其他函数中调用时记录器无法写入

javascript - Express服务器响应是一个流,如何使其成为字符串/json

ios - ASIHTTPRequest 响应数据 null

javascript - 为什么我的 API 不读取本地 JSON 文件? ( Node )

java - 在 Java 中检索 Http 响应状态的最快方法

wcf - 为什么 WCF 将并发连接数限制为 5?

heroku - 将 go webapps 部署到 heroku : can't find package issue

asp.net-mvc - 文件上传到 ASP。 NET MVC 6 不工作

java - 如何在 nanohttpd 中发送 JSON 数据作为响应