diff options
author | René 'Necoro' Neumann <necoro@necoro.eu> | 2022-01-09 22:14:56 +0100 |
---|---|---|
committer | René 'Necoro' Neumann <necoro@necoro.eu> | 2022-01-10 00:16:44 +0100 |
commit | 5b3f0f96b7e345a82f0d963ddef1dd4569465145 (patch) | |
tree | 1870a1465cbef9f828137e2fcb37bd53dc611034 /internal/http/client.go | |
parent | c20aa09fb31e09819e8e5eca222b3de2049cbdf8 (diff) | |
download | feed2imap-go-5b3f0f96b7e345a82f0d963ddef1dd4569465145.tar.gz feed2imap-go-5b3f0f96b7e345a82f0d963ddef1dd4569465145.tar.bz2 feed2imap-go-5b3f0f96b7e345a82f0d963ddef1dd4569465145.zip |
Support sending cookies in a http request.
Diffstat (limited to 'internal/http/client.go')
-rw-r--r-- | internal/http/client.go | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/internal/http/client.go b/internal/http/client.go index 17eb0cc..4272a5b 100644 --- a/internal/http/client.go +++ b/internal/http/client.go @@ -23,6 +23,7 @@ type Error struct { type Context struct { Timeout int DisableTLS bool + Cookies []Cookie } func (err Error) Error() string { @@ -53,6 +54,11 @@ func client(disableTLS bool) *http.Client { var noop ctxt.CancelFunc = func() {} +type Cookie struct { + Name string + Value string +} + func Get(url string, ctx Context) (resp *http.Response, cancel ctxt.CancelFunc, err error) { prematureExit := true stdCtx, ctxCancel := ctx.StdContext() @@ -76,6 +82,11 @@ func Get(url string, ctx Context) (resp *http.Response, cancel ctxt.CancelFunc, } req.Header.Set("User-Agent", "Feed2Imap-Go/1.0") + for _, c := range ctx.Cookies { + cookie := http.Cookie{Name: c.Name, Value: c.Value} + req.AddCookie(&cookie) + } + resp, err = client(ctx.DisableTLS).Do(req) if err != nil { return nil, noop, err |