简体   繁体   中英

HTTP server vs client request in golang

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.

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\n", req.Body != nil, req.Body)
}

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

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.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM