package radarfetch import ( "io" "net/http" "time" ) const DefaultUA = "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36" func GetWithUA(url string, ua string, timeout time.Duration, extraHeaders map[string]string) ([]byte, error) { c := &http.Client{Timeout: timeout} req, err := http.NewRequest("GET", url, nil) if err != nil { return nil, err } if ua == "" { ua = DefaultUA } req.Header.Set("User-Agent", ua) for k, v := range extraHeaders { req.Header.Set(k, v) } resp, err := c.Do(req) if err != nil { return nil, err } defer resp.Body.Close() if resp.StatusCode < 200 || resp.StatusCode > 299 { return nil, io.ErrUnexpectedEOF } b, err := io.ReadAll(resp.Body) if err != nil { return nil, err } return b, nil }