diff --git a/main.go b/main.go index ac69551..c12b86b 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,25 @@ func Run(ctx context.Context, config string) error { req.Header.Add("Content-Type", conf.ContentType) } + if conf.Headers != "" { + if strings.Contains(conf.Headers, ";") { + headers := strings.Split(conf.Headers, ";") + for _, element := range headers { + 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 { + 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(keyvalue[0], keyvalue[1]) + } + } + tls_config := &tls.Config{InsecureSkipVerify: conf.Insecure} http_transpot := &http.Transport{TLSClientConfig: tls_config} client := &http.Client{Transport: http_transpot}