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.