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 读取呢,上面代理用的是阿布云的代理,测试账号已经是过期的
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.