From fb436a64da65b0c044847a2aadd0d1bbeaf5566f Mon Sep 17 00:00:00 2001 From: pmj1426 Date: Sat, 21 Feb 2026 20:25:25 -0500 Subject: [PATCH 1/4] Moved logic for headers to always work regardless of contentType --- main.go | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/main.go b/main.go index ac69551..c0e3351 100644 --- a/main.go +++ b/main.go @@ -126,13 +126,6 @@ func Run(ctx context.Context, config string) error { if err != nil { return fmt.Errorf("encounted error while creating request: %v", err.Error()) } - if strings.Contains(conf.Headers, ";") { - for _, element := range strings.Split(conf.Headers, ";") { - req.Header.Add(strings.Split(element, ":")[0], strings.Split(element, ":")[1]) - } - } else { - req.Header.Add(strings.Split(conf.Headers, ":")[0], strings.Split(conf.Headers, ":")[1]) - } } else { req, err = http.NewRequestWithContext(ctx, requestType, conf.URL, bytes.NewBufferString(conf.Body)) @@ -142,6 +135,14 @@ func Run(ctx context.Context, config string) error { req.Header.Add("Content-Type", conf.ContentType) } + if conf.Headers != "" { + for _, element := range strings.Split(conf.Headers, ";") { + req.Header.Add(strings.Split(element, ":")[0], strings.Split(element, ":")[1]) + } + } else { + req.Header.Add(strings.Split(conf.Headers, ":")[0], strings.Split(conf.Headers, ":")[1]) + } + tls_config := &tls.Config{InsecureSkipVerify: conf.Insecure} http_transpot := &http.Transport{TLSClientConfig: tls_config} client := &http.Client{Transport: http_transpot} From d434f7b007be39c55a9cdeeb73d0ebaf9721dbcf Mon Sep 17 00:00:00 2001 From: pmj1426 Date: Sat, 21 Feb 2026 20:39:08 -0500 Subject: [PATCH 2/4] Added empty headers check and rewrote if statement to check for multiple headers --- main.go | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/main.go b/main.go index c0e3351..7914cc1 100644 --- a/main.go +++ b/main.go @@ -136,11 +136,13 @@ func Run(ctx context.Context, config string) error { } if conf.Headers != "" { - for _, element := range strings.Split(conf.Headers, ";") { - req.Header.Add(strings.Split(element, ":")[0], strings.Split(element, ":")[1]) + if strings.Contains(conf.Headers, ";") { + for _, element := range strings.Split(conf.Headers, ";") { + req.Header.Add(strings.Split(element, ":")[0], strings.Split(element, ":")[1]) + } + } else { + req.Header.Add(strings.Split(conf.Headers, ":")[0], strings.Split(conf.Headers, ":")[1]) } - } else { - req.Header.Add(strings.Split(conf.Headers, ":")[0], strings.Split(conf.Headers, ":")[1]) } tls_config := &tls.Config{InsecureSkipVerify: conf.Insecure} From 13d9587ab1f16eeac7e7775ff555f589a4b207a9 Mon Sep 17 00:00:00 2001 From: pmj1426 Date: Sat, 21 Feb 2026 20:45:34 -0500 Subject: [PATCH 3/4] Added logic to ensure headers have proper key value pair and are not empty --- main.go | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/main.go b/main.go index 7914cc1..98e4d81 100644 --- a/main.go +++ b/main.go @@ -137,11 +137,19 @@ func Run(ctx context.Context, config string) error { if conf.Headers != "" { if strings.Contains(conf.Headers, ";") { - for _, element := range strings.Split(conf.Headers, ";") { + headers := strings.Split(conf.Headers, ";") + if len(headers)%2 == 0 { + return fmt.Errorf("header format must be \"header:value;header:value\" ; got: %v", conf.Headers) + } + for _, element := range headers { req.Header.Add(strings.Split(element, ":")[0], strings.Split(element, ":")[1]) } } else { - req.Header.Add(strings.Split(conf.Headers, ":")[0], strings.Split(conf.Headers, ":")[1]) + headers := strings.Split(conf.Headers, ";") + if len(headers)%2 == 0 { + return fmt.Errorf("header format must be \"header:value;header:value\" ; got: %v", conf.Headers) + } + req.Header.Add(headers[0], headers[1]) } } From e207b3a31cde26dab61384faa91f4ab72602862c Mon Sep 17 00:00:00 2001 From: pmj1426 Date: Sun, 22 Feb 2026 00:50:09 -0500 Subject: [PATCH 4/4] Redid logic again. Check that header key value pair length is equal to 2 --- main.go | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/main.go b/main.go index 98e4d81..c12b86b 100644 --- a/main.go +++ b/main.go @@ -138,18 +138,19 @@ func Run(ctx context.Context, config string) error { if conf.Headers != "" { if strings.Contains(conf.Headers, ";") { headers := strings.Split(conf.Headers, ";") - if len(headers)%2 == 0 { - return fmt.Errorf("header format must be \"header:value;header:value\" ; got: %v", conf.Headers) - } for _, element := range headers { - req.Header.Add(strings.Split(element, ":")[0], strings.Split(element, ":")[1]) + keyvalue := strings.Split(element, ":") + if len(keyvalue) != 2 { + return fmt.Errorf("header format must be \"header:value;header:value\" ; got: %v", conf.Headers) + } + req.Header.Add(keyvalue[0], keyvalue[1]) } } else { - headers := strings.Split(conf.Headers, ";") - if len(headers)%2 == 0 { + keyvalue := strings.Split(conf.Headers, ":") + if len(keyvalue) != 2 { return fmt.Errorf("header format must be \"header:value;header:value\" ; got: %v", conf.Headers) } - req.Header.Add(headers[0], headers[1]) + req.Header.Add(keyvalue[0], keyvalue[1]) } }