douzhang3822
2015-10-20 22:44 阅读 58
已采纳

Golang中的HTTP服务器与客户端请求

The documentation says there's a difference between server and client http request, for example, in the case where the body is empty. How do I create a server request to simulate incoming http request for testing purpose?

Edit: I specifically want to create http server request for use during unit test.

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

2条回答 默认 最新

  • 已采纳
    duanpuluan0480 duanpuluan0480 2015-10-21 17:32

    Sorry for the delayed answer. Got a bit side tracked last night. Here's a quick example of making a request object with a non-nil body. One thing to note that I don't think I bothered asking, HTTP GET's don't have a body so you may always get a nil value for that HTTP method. Not positive about that but it would not surprise me if it were the case.

    package main
    
    import "fmt"
    import "net/http"
    import "strings"
    
    func main() {
            reader := strings.NewReader("")
            req, _ := http.NewRequest("POST", "http://example.com", reader)
        fmt.Printf("Body != nil ? %v, value: %s END
    ", req.Body != nil, req.Body)
    }
    

    https://play.golang.org/p/5Fb6b2qgSo

    点赞 评论 复制链接分享
  • dongnan4571 dongnan4571 2017-07-14 09:15

    I dont know if you are still looking for an answer here, but Go actually has a package for testing HTTP servers.

    https://golang.org/pkg/net/http/httptest/

    Its fantastic for testing. You can create both the request and the server through here for testing.

    点赞 评论 复制链接分享

相关推荐