go 代理问题
資深大佬 : 347443579 24
const proxyServer = "http-dyn.abuyun.com:9020" // 代理隧道验证信息 const proxyUser = "H8K54D3646J2X67D"; const proxyPass = "C6228A18B130EF63"; type AbuyunProxy struct { AppID string AppSecret string } func (p AbuyunProxy) ProxyClient() http.Client { proxyUrl, _ := url.Parse("http://"+ p.AppID +":"+ p.AppSecret +"@"+ proxyServer) return http.Client{Transport: &http.Transport{Proxy: http.ProxyURL(proxyUrl)}} } func main() { targetUrl := "https://anime-pictures.net/pictures/download_image/640247-5528x3508-kimetsu+no+yaiba-uzui+tengen-mikki-single-short+hair-highres.png" // 初始化 proxy http client client := AbuyunProxy{AppID: proxyUser, AppSecret: proxyPass}.ProxyClient() request, _ := http.NewRequest("GET", targetUrl, bytes.NewBuffer([]byte(``))) response, err := client.Do(request) if err != nil { panic("failed to connect: " + err.Error()) } /*response, err := http.Get(targetUrl) if err != nil{ fmt.Println("请求图片 url 失败",err) }*/ fmt.Println(response) defer response.Body.Close() name := "./H_1.jpg" out, err := os.Create(name) if err != nil{ fmt.Println("创建文件失败",err) } defer out.Close() pix, err := ioutil.ReadAll(response.Body) if err != nil{ fmt.Println(err) } _, err = io.Copy(out, bytes.NewReader(pix)) if err != nil { fmt.Println("下载文件失败",err) } }
各位大佬帮忙看一下,我用代理返回的 status 是 200,但是 ioutil.ReadAll 读取会出现 unexpected EOF 错误,后面我又用了上面注释的 http.Get 请求,ioutil.ReadAll 读取是可以保存图片的,但是 http.Get 请求和代理请求都是 status,为什么代理不能被 ioutil.ReadAll 读取呢,上面代理用的是阿布云的代理,测试账号已经是过期的
大佬有話說 (8)