Awesome
http2curl
convert Request of fasthttp, hertz and net/http to CURL command line and fork from moul/http2curl
Install
go get github.com/li-jin-gou/http2curl
Usage
FastHttp
func FastHttpDemo() {
// fasthttp
var req fasthttp.Request
req.SetRequestURI("https://example.com/index")
req.Header.SetMethod(fasthttp.MethodPost)
req.SetBody([]byte(`{"a":"b"}`))
req.Header.Set("Content-Type", "application/json")
c, _ := http2curl.GetCurlCommandFastHttp(&req)
fmt.Println(c)
// Output: curl -k -X 'POST' -d '{"a":"b"}' -H 'Content-Type: application/json' 'https://example.com/index' --compressed
}
Hertz
func HertzDemo() {
// hertz
req := protocol.NewRequest(consts.MethodGet, "https://example.com/index", nil)
req.URI().QueryArgs().Add("a", "1")
req.URI().QueryArgs().Add("b", "2")
req.Header.Set("a", "2")
c, _ := http2curl.GetCurlCommandHertz(req)
fmt.Println(c)
// Output: curl -k -X 'GET' -H 'A: 2' -H 'Host: example.com' 'https://example.com/index?a=1&b=2' --compressed
}
net/http
func NetHttpDemo() {
req, _ := http.NewRequest(http.MethodPost, "https://example.com/index", bytes.NewBufferString(`{"a":"b"}`))
req.Header.Set("Content-Type", "application/json")
c, _ := http2curl.GetCurlCommand(req)
fmt.Println(c)
// Output: curl -k -X 'POST' -d '{"a":"b"}' -H 'Content-Type: application/json' 'https://example.com/index' --compressed
}
Resty
func RestyDemo() {
var req *resty.Request
client := resty.New()
resp, _ := client.R().
SetHeader("Content-Type", "application/json").
SetBody([]byte(`{"a":"b"}`)).
Post("https://example.com/index")
req = resp.Request
c, _ := http2curl.GetCurlCommandResty(req)
fmt.Println(c)
// Output: curl -k -X 'POST' -d '{"a":"b"}' -H 'Accept: application/json' -H 'Content-Type: application/json' -H 'User-Agent: go-resty/2.12.0 (https://github.com/go-resty/resty)' 'https://example.com/index' --compressed
}