最近几天部署代理池的时候,用Python写了requests请求测试IP地址检测连通性的脚本。但是发现了一个问题,requests.get带代理请求有时候请求不通。
我初步认为代理的问题,但是之后我用了curl请求发现代理是正常的,用Go写了测试发现还是正常的。难道是requests的问题?目前不知道是什么原因,之后我用Go写了代理的测试,由此我发现了一个Go语言比较好用的Http请求的包——Gorequest
Go语言中net/http的代理请求
net/http请求整体流程并不复杂,用nrt/http包的get,post方法都可以实现。
但是,在配置代理上,需要单独配置Client客户端:
//发送请求
rqt, err := http.NewRequest("GET", testApi, nil)
if err != nil {
fmt.Println(err)
return
}
//配置代理
client := &http.Client{
Transport: &http.Transport{
Proxy: http.ProxyURL(urlProxy),
},
}
response, err := client.Do(rqt)
if err != nil {
fmt.Println(err)
panic(err)
return
}
直到我发现了Gorequest
Gorequest
$ go get github.com/parnurzeal/gorequest //安装