diff --git a/flaresolverr.go b/flaresolverr.go index 25d1803..2065fec 100644 --- a/flaresolverr.go +++ b/flaresolverr.go @@ -3,6 +3,7 @@ package flaresolverr import ( "encoding/json" "fmt" + "io" "net/http" "regexp" "strings" @@ -164,7 +165,7 @@ func (f *Flaresolverr) DetermineProfile(userAgent string) profiles.ClientProfile } } -func (f *Flaresolverr) SimulateGet(url string, ua string, cookies []*http.Cookie, opts ...tls_client.HttpClientOption) (*fhttp.Response, error) { +func (f *Flaresolverr) simulateRequest(method string, url string, ua string, cookies []*http.Cookie, body *io.Reader, opts ...tls_client.HttpClientOption) (*fhttp.Response, error) { currentUA := ua currentCookies := cookies @@ -189,7 +190,7 @@ func (f *Flaresolverr) SimulateGet(url string, ua string, cookies []*http.Cookie if err != nil { return nil, fmt.Errorf("failed to create client: %w", err) } - req, err := fhttp.NewRequest(http.MethodGet, url, nil) + req, err := fhttp.NewRequest(method, url, *body) if err != nil { return nil, fmt.Errorf("failed to create request: %w", err) } @@ -252,3 +253,11 @@ func (f *Flaresolverr) SimulateGet(url string, ua string, cookies []*http.Cookie return resp, nil } + +func (f *Flaresolverr) SimulateGet(url string, ua string, cookies []*http.Cookie, opts ...tls_client.HttpClientOption) (*fhttp.Response, error) { + return f.simulateRequest("GET", url, ua, cookies, nil, opts...) +} + +func (f *Flaresolverr) SimulatePost(url string, ua string, cookies []*http.Cookie, body io.Reader, opts ...tls_client.HttpClientOption) (*fhttp.Response, error) { + return f.simulateRequest("POST", url, ua, cookies, &body, opts...) +}