直接用系统全局代理模式不行?你要访问
xxx.com 的话是不是得用 http 请求,直接把 http 请求设置成走代理?
func ProxyHttpDo(method, reqURL, reqData string, header map[string]string) (body []byte, err error) {
// 创建代理地址
proxyUrl, err := url.Parse("http://127.0.0.1:7890")
if err != nil {
panic(err)
}
// 创建 Transport 对象并将代理地址分配给它的 Proxy 字段
transport := &http.Transport{Proxy: http.ProxyURL(proxyUrl)}
// 创建一个 http.Client 对象,并将 Transport 分配给它的 Transport 字段
client := &http.Client{Transport: transport}
req, err := http.NewRequest(method, reqURL, strings.NewReader(reqData))
if err != nil {
// handle error
return nil, err
}
//req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
//req.Header.Set("Cookie", "name=anny")
req.Header.Set("Origin", "
https://www.google.com") //授权头信息
req.Header.Set("Referer", "
https://www.google..com/") //授权头信息
if len(header) > 0 {
log.Printf("has header--->")
for k, v := range header {
log.Printf("header[%s]=>[%s]\n", k, v)
req.Header.Set(k, v)
}
}
resp, err :=
client.Do(req)
if err != nil {
return nil, err
}
defer resp.Body.Close()
body, err = io.ReadAll(resp.Body)
log.Printf("body:%s\n", string(body))
if err != nil {
// handle error
return nil, err
}
return
}