jyhl
5 years ago
commit
c1b2b0f0fc
2 changed files with 72 additions and 0 deletions
@ -0,0 +1,68 @@ |
|||||||
|
package main |
||||||
|
|
||||||
|
import ( |
||||||
|
"net/url" |
||||||
|
"net/http" |
||||||
|
"bytes" |
||||||
|
"fmt" |
||||||
|
"io/ioutil" |
||||||
|
) |
||||||
|
|
||||||
|
// 代理服务器(产品官网 www.16yun.cn)
|
||||||
|
const ProxyServer = "t.16yun.cn:31111" |
||||||
|
|
||||||
|
type ProxyAuth struct { |
||||||
|
Username string |
||||||
|
Password string |
||||||
|
} |
||||||
|
|
||||||
|
func (p ProxyAuth) ProxyClient() http.Client { |
||||||
|
|
||||||
|
var proxyURL *url.URL |
||||||
|
if p.Username != ""&& p.Password!="" { |
||||||
|
proxyURL, _ = url.Parse("http://" + p.Username + ":" + p.Password + "@" + ProxyServer) |
||||||
|
}else{ |
||||||
|
proxyURL, _ = url.Parse("http://" + ProxyServer) |
||||||
|
} |
||||||
|
return http.Client{Transport: &http.Transport{Proxy:http.ProxyURL(proxyURL)}} |
||||||
|
} |
||||||
|
|
||||||
|
func main() { |
||||||
|
|
||||||
|
//服务器域名:u4866.b5.t.16yun.cn
|
||||||
|
//服务端口:6460
|
||||||
|
//用户名:16JCNPZD
|
||||||
|
//密码:238369
|
||||||
|
|
||||||
|
targetURI := "https://httpbin.org/ip" |
||||||
|
|
||||||
|
|
||||||
|
// 初始化 proxy http client
|
||||||
|
client := ProxyAuth{"USERNAME", "PASSWORD"}.ProxyClient() |
||||||
|
|
||||||
|
request, _ := http.NewRequest("GET", targetURI, bytes.NewBuffer([] byte(``))) |
||||||
|
|
||||||
|
// 设置Proxy-Tunnel
|
||||||
|
// rand.Seed(time.Now().UnixNano())
|
||||||
|
// tunnel := rand.Intn(10000)
|
||||||
|
// request.Header.Set("Proxy-Tunnel", strconv.Itoa(tunnel) )
|
||||||
|
|
||||||
|
response, err := client.Do(request) |
||||||
|
|
||||||
|
if err != nil { |
||||||
|
panic("failed to connect: " + err.Error()) |
||||||
|
} else { |
||||||
|
bodyByte, err := ioutil.ReadAll(response.Body) |
||||||
|
if err != nil { |
||||||
|
fmt.Println("读取 Body 时出错", err) |
||||||
|
return |
||||||
|
} |
||||||
|
response.Body.Close() |
||||||
|
|
||||||
|
body := string(bodyByte) |
||||||
|
|
||||||
|
fmt.Println("Response Status:", response.Status) |
||||||
|
fmt.Println("Response Header:", response.Header) |
||||||
|
fmt.Println("Response Body:\n", body) |
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue