diff --git a/httplib/README.md b/httplib/README.md index eaf1d506..6ec592ab 100644 --- a/httplib/README.md +++ b/httplib/README.md @@ -73,3 +73,8 @@ httplib support mutil file upload, use `b.PostFile()` t.Fatal(err) } fmt.Println(str) + +## set HTTP version +some servers need to specify the protocol version of HTTP + + httplib.Get("http://beego.me/").SetProtocolVersion("HTTP/1.1") \ No newline at end of file diff --git a/httplib/httplib.go b/httplib/httplib.go index e7736308..18995283 100644 --- a/httplib/httplib.go +++ b/httplib/httplib.go @@ -109,6 +109,23 @@ func (b *BeegoHttpRequest) Header(key, value string) *BeegoHttpRequest { return b } +// Set the protocol version for incoming requests. +// Client requests always use HTTP/1.1. +func (b *BeegoHttpRequest) SetProtocolVersion(vers string) *BeegoHttpRequest { + if len(vers) == 0 { + vers = "HTTP/1.1" + } + + major, minor, ok := http.ParseHTTPVersion(vers) + if ok { + b.req.Proto = vers + b.req.ProtoMajor = major + b.req.ProtoMinor = minor + } + + return b +} + // SetCookie add cookie into request. func (b *BeegoHttpRequest) SetCookie(cookie *http.Cookie) *BeegoHttpRequest { b.req.Header.Add("Cookie", cookie.String())