实例如下:
package main
import (
"fmt"
"io/IoUtil"
"net/http"
"net/url"
)
const (
HttpProxy = "http://127.0.0.1:6152"
SocksProxy = "socks5://127.0.0.1:6153"
)
func main() {
proxy := func(_ *http.Request) (*url.URL,error) {
return url.Parse(HttpProxy)
}
httpTransport := &http.Transport{
Proxy: proxy,}
httpClient := &http.Client{
Transport: httpTransport,}
req,err := http.NewRequest("GET","https://api.ip.sb/ip",nil)
if err != nil {
// handle error
}
resp,err := httpClient.Do(req)
defer resp.Body.Close()
body,err := IoUtil.ReadAll(resp.Body)
if err != nil {
// handle error
}
fmt.Println(string(body))
proxy = func(_ *http.Request) (*url.URL,error) {
return url.Parse(SocksProxy)
}
httpTransport = &http.Transport{
Proxy: proxy,}
httpClient = &http.Client{
Transport: httpTransport,err = http.NewRequest("GET",err = httpClient.Do(req)
defer resp.Body.Close()
body,err = IoUtil.ReadAll(resp.Body)
if err != nil {
// handle error
}
fmt.Println(string(body))
}
可以验证:打印的响应中确实为代理 IP。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。