package starnet import ( "net/http" ) // SetHeader 设置 Header(覆盖) func (r *Request) SetHeader(key, value string) *Request { if r.err != nil { return r } if r.doRaw { return r } r.config.Headers.Set(key, value) return r } // AddHeader 添加 Header func (r *Request) AddHeader(key, value string) *Request { if r.err != nil { return r } if r.doRaw { return r } r.config.Headers.Add(key, value) return r } // SetHeaders 设置所有 Headers(覆盖) func (r *Request) SetHeaders(headers http.Header) *Request { if r.err != nil { return r } if r.doRaw { return r } r.config.Headers = headers return r } // AddHeaders 批量添加 Headers func (r *Request) AddHeaders(headers map[string]string) *Request { if r.err != nil { return r } if r.doRaw { return r } for k, v := range headers { r.config.Headers.Add(k, v) } return r } // DeleteHeader 删除 Header func (r *Request) DeleteHeader(key string) *Request { if r.err != nil { return r } if r.doRaw { return r } r.config.Headers.Del(key) return r } // GetHeader 获取 Header func (r *Request) GetHeader(key string) string { return r.config.Headers.Get(key) } // Headers 获取所有 Headers func (r *Request) Headers() http.Header { return r.config.Headers } // SetContentType 设置 Content-Type func (r *Request) SetContentType(contentType string) *Request { return r.SetHeader("Content-Type", contentType) } // SetUserAgent 设置 User-Agent func (r *Request) SetUserAgent(userAgent string) *Request { return r.SetHeader("User-Agent", userAgent) } // SetReferer 设置 Referer func (r *Request) SetReferer(referer string) *Request { return r.SetHeader("Referer", referer) } // SetBearerToken 设置 Bearer Token func (r *Request) SetBearerToken(token string) *Request { return r.SetHeader("Authorization", "Bearer "+token) } // AddCookie 添加 Cookie func (r *Request) AddCookie(cookie *http.Cookie) *Request { if r.err != nil { return r } if r.doRaw { return r } r.config.Cookies = append(r.config.Cookies, cookie) return r } // AddSimpleCookie 添加简单 Cookie(path 为 /) func (r *Request) AddSimpleCookie(name, value string) *Request { return r.AddCookie(&http.Cookie{ Name: name, Value: value, Path: "/", }) } // AddCookieKV 添加 Cookie(指定 path) func (r *Request) AddCookieKV(name, value, path string) *Request { return r.AddCookie(&http.Cookie{ Name: name, Value: value, Path: path, }) } // SetCookies 设置所有 Cookies(覆盖) func (r *Request) SetCookies(cookies []*http.Cookie) *Request { if r.err != nil { return r } if r.doRaw { return r } r.config.Cookies = cookies return r } // AddCookies 批量添加 Cookies func (r *Request) AddCookies(cookies map[string]string) *Request { if r.err != nil { return r } if r.doRaw { return r } for name, value := range cookies { r.config.Cookies = append(r.config.Cookies, &http.Cookie{ Name: name, Value: value, Path: "/", }) } return r } // Cookies 获取所有 Cookies func (r *Request) Cookies() []*http.Cookie { return r.config.Cookies } // ResetHeaders 重置所有 Headers func (r *Request) ResetHeaders() *Request { if r.err != nil { return r } r.config.Headers = make(http.Header) return r } // ResetCookies 重置所有 Cookies func (r *Request) ResetCookies() *Request { if r.err != nil { return r } r.config.Cookies = []*http.Cookie{} return r }