doujichan1399 2015-11-28 16:57
浏览 223
已采纳

在golang中使用示例主体字符串创建http.Response实例

I am willing to create a sample http.Response instance in golang with a sample body string.

Problem is, its body property accepts ReadCloser instance. But as its a dummy response instance, I was wondering if there is some trick to set it easily without setting up all that stream read/close parts.

  • 写回答

3条回答 默认 最新

  • doulianglou0898 2015-11-29 07:24
    关注

    As suggested by Not_a_Golfer and JimB:

    io.ReadCloser is an interface that is satisfied when a struct implements both the Read and the Close functions.

    Fortunately, there is ioutil.NopCloser, which takes a io.Reader and wraps it in the nopCloser struct, which implements both Read and Close. However, its Close function does nothing as implied from the name.

    Here is an example:

    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)
    }
    

    To play with the code, click here.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部