最近要使用 http 代理发起请求,查资料的时候感觉网上的资料有点混乱,所以自己整理一下以供以后参考。
一般来说最常用的代理方式有两种 socks5 和 http 。这里我演示一下,我记得以前 使用 socks5 代理是需要使用到 官方开发库的,不知道是不是资料显示错误。但是现在是可以不用 第三方库可开发库就可以使用 socks5 的。
不多废话直接上代码。
package main
import (
"fmt"
"io/ioutil"
"net/http"
"net/url"
"time"
)
func main() {
//proxy, err := url.Parse("http://127.0.0.1:8118") // 如果使用的是 http 代理 的话就使用这一句
proxy, err := url.Parse("socks5://127.0.0.1:1080") // 解析代理地址 我个人测试 socks5 http 都可以
if err != nil {
panic(err)
}
client := http.Client{ // 新建客户端
Transport: &http.Transport{Proxy: http.ProxyURL(proxy)}, // 使用 代理
Timeout: 10 * time.Second, // 指定 http 超时时间
}
resp, err := client.Get("https://api.ip.sb/ip") // 发起请求
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body) // 读取响应内容
if err != nil {
panic(err)
}
fmt.Println(string(body)) // 打印响应内容 这里我查了一下自己的 ip
}
大概就是这样子的,祝你玩得愉快