You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							68 lines
						
					
					
						
							1.5 KiB
						
					
					
				
			
		
		
	
	
							68 lines
						
					
					
						
							1.5 KiB
						
					
					
				| 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) | |
| 	} | |
| }
 | |
| 
 |