From 5b3f0f96b7e345a82f0d963ddef1dd4569465145 Mon Sep 17 00:00:00 2001 From: René 'Necoro' Neumann Date: Sun, 9 Jan 2022 22:14:56 +0100 Subject: Support sending cookies in a http request. --- internal/http/client.go | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'internal/http') 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 -- cgit v1.2.3-70-g09d2