diff --git a/httplib/httplib.go b/httplib/httplib.go index 1c0d5544..bb5fb9ea 100644 --- a/httplib/httplib.go +++ b/httplib/httplib.go @@ -147,6 +147,12 @@ func (b *BeegoHttpRequest) Setting(setting BeegoHttpSettings) *BeegoHttpRequest return b } +// SetBasicAuth sets the request's Authorization header to use HTTP Basic Authentication with the provided username and password. +func (b *BeegoHttpRequest) SetBasicAuth(username, password string) *BeegoHttpRequest { + b.req.SetBasicAuth(username, password) + return b +} + // SetEnableCookie sets enable/disable cookiejar func (b *BeegoHttpRequest) SetEnableCookie(enable bool) *BeegoHttpRequest { b.setting.EnableCookie = enable diff --git a/httplib/httplib_test.go b/httplib/httplib_test.go index 2d49d875..02068c0b 100644 --- a/httplib/httplib_test.go +++ b/httplib/httplib_test.go @@ -120,6 +120,18 @@ func TestWithCookie(t *testing.T) { } } +func TestWithBasicAuth(t *testing.T) { + str, err := Get("http://httpbin.org/basic-auth/user/passwd").SetBasicAuth("user", "passwd").String() + if err != nil { + t.Fatal(err) + } + t.Log(str) + n := strings.Index(str, "authenticated") + if n == -1 { + t.Fatal("authenticated not found in response") + } +} + func TestWithUserAgent(t *testing.T) { v := "beego" str, err := Get("http://httpbin.org/headers").SetUserAgent(v).String()