diff --git a/pkg/expr/expr.go b/pkg/expr/expr.go index 36719100..e2ed0ca6 100644 --- a/pkg/expr/expr.go +++ b/pkg/expr/expr.go @@ -6,17 +6,23 @@ import ( "io" "net/http" "regexp" + "strings" "github.com/AlexxIT/go2rtc/pkg/tcp" "github.com/expr-lang/expr" ) -func newRequest(method, url string, headers map[string]any) (*http.Request, error) { +func newRequest(method, url string, headers map[string]any, body string) (*http.Request, error) { + var rd io.Reader + if method == "" { method = "GET" } + if body != "" { + rd = strings.NewReader(body) + } - req, err := http.NewRequest(method, url, nil) + req, err := http.NewRequest(method, url, rd) if err != nil { return nil, err } @@ -55,7 +61,8 @@ var Options = []expr.Option{ options := params[1].(map[string]any) method, _ := options["method"].(string) headers, _ := options["headers"].(map[string]any) - req, err = newRequest(method, url, headers) + body, _ := options["body"].(string) + req, err = newRequest(method, url, headers, body) } else { req, err = http.NewRequest("GET", url, nil) }