分享页面
拖动logo到书签栏,立即收藏青果网络
代理IP
国内代理
查看详情
短效代理
千万级动态IP资源(1-30分钟可选)
弹性提取
HOT
每天IP数固定
均匀提取
每分钟IP数固定
按量提取
0.00216元/IP起
通道提取
39元/月起
企业定制
企业专属
隧道代理
云端切换IP,调用简单
按请求计费
HOT
0代码接入
企业定制
企业专属
长效代理
长时效住宅IP(存活30分钟以上)
静态IP
49元/月起
动态IP
NEW
39元/月起
独享代理
独享IP和带宽,纯净高可用
按通道计费
免费试用6小时
全球HTTP
查看详情
短效代理
海量、高可用全球动态IP资源
通道计费
不限流量
流量计费
3元/G起
隧道代理
云端切换IP,调用简单
请求计费
不限流量
流量计费
4元/G起
控制台
|
登录/注册
子
用户在实名认证前无法开通业务
充值
未支付订单
未完成工单
未读消息
会员中心
退出登录
文档中心
产品介绍
使用指南
开发者指南
API接口
代码示例
常见问题
账户中心
查询
产品介绍
短效代理
产品介绍
提取方式
资源池
使用指南
API接口
隧道代理
产品介绍
使用指南
独享代理
产品介绍
地区锁功能
使用指南
API接口
长效代理
产品介绍
使用指南
API接口
短效代理(全球HTTP)
产品介绍
提取方式
使用指南
API接口
隧道代理(全球HTTP)
产品介绍
资源池
使用指南
短效代理
产品介绍
提取方式
弹性提取
按量提取
均匀提取
通道提取
企业定制
资源池
中转池
隧道池
使用指南
使用指南
开发者指南
API接口
弹性提取
API接口介绍
提取IP
查询余额
查询资源地区
按量提取
API接口介绍
提取IP
查询余额
查询资源地区
均匀提取
API接口介绍
提取IP
查询余额
查询资源地区
通道提取
API接口介绍
提取IP
查询在用IP
提取并查询资源
查询通道数
查询资源地区
隧道代理
产品介绍
使用指南
开发者指南
独享代理
产品介绍
地区锁功能
使用指南
使用指南
开发者指南
API接口
独享代理
API接口介绍
提取IP
查询在用IP
释放IP
替换IP
查询通道数
查询资源地区
独享代理(地区锁)
API接口介绍
提取IP
查询在用IP
释放IP
替换IP
查询资源地区
长效代理
产品介绍
使用指南
使用指南
开发者指南
API接口
API接口介绍
提取IP
查询在用IP
释放IP
查询通道数
查询资源地区
短效代理(全球HTTP)
产品介绍
提取方式
通道提取
按量提取
使用指南
使用指南
开发者指南
API接口
按量提取
API接口介绍
提取IP
查询在用IP
查询余额
查询国家
通道提取
API接口介绍
提取IP
查询在用IP
查询通道数
查询国家
隧道代理(全球HTTP)
产品介绍
资源池
住宅池
超级机房池
使用指南
开发者指南
产品介绍
>
独享代理
>
隧道代理 Go 语言接入指南
隧道代理 Go 语言接入指南
发布时间:2023-04-13 10:55
## 概述 本文档将指引你进行隧道代理的接入,在此文档中使用到的术语将会在下方进行列出。 | 术语 | 解释 | | :------- | :----------------------------------------- | | 隧道 | 自动更换代理 IP 的代理服务 | | 固定时长 | 服务器将在固定时长后自动切换IP,例如1分钟 | | 通道 | 使用多个通道同时发起请求,每个通道的IP不同 | 隧道代理有多种使用方式,具体行为取决于套餐及模式。 - 普通模式 每次请求都自动切换IP - 普通模式打标记 普通模式下,希望多个HTTP请求保证代理IP相同,可以给多个请求的代理协议打上相同的标记,并标记这个代理IP的存活时间(不主动设置存活时间则默认为10秒) - 固定时长多通道模式 服务器定时切换IP,可同时使用多个通道发起请求,即可以同时使用多个IP ## 前置知识 在 go 语言中,通常使用 http.Client 进行 http/s 代理的设定与请求的发送,使用 http.NewRequest 进行请求的构建。 ### Proxy Url Scheme 由协议、用户名、密码、域名、端口几部分组成 例如 http 协议的代理 url ``` http://[user:password@]hostname:port ``` ## 使用 GO 接入 **以下内容假设读者具备基本的 Go 语言编程能力和对网络协议具有一定的了解。** ### 生成 url 普通模式 ```go link := fmt.Sprintf("http://%s:%s@%s", authKey, password, proxyServer) proxyURL, _ := url.Parse(link) ``` 普通模式打标记 ```go link := fmt.Sprintf("http://%s:%s:%s:%d@%s", authKey, password, "channel-1", 20, proxyServer) proxyURL, _ := url.Parse(link) ``` 固定时长多通道模式 ```go link := fmt.Sprintf("http://%s:%s:%s@%s", authKey, password, "channel-1", proxyServer) proxyURL, _ := url.Parse(link) ``` ### 构建 Client 后续将使用该 client 发起 request ```go client := http.Client{ Transport: &http.Transport{ Proxy: http.ProxyURL(proxyURL), }, } ``` ### 构建 HTTP/s GET 请求 以 https://api.ipify.org 为例。 因为已确认参数合法,因此构建不会发生错误,无需处理错误。 ``` request, _ := http.NewRequest("GET", "https://test.ipw.cn", nil) // 如果上面目标站不可用,请使用ip.sb、ipinfo.io、ip-api.com、64.ipcheck.ing ``` ### 执行已构建的 HTTP/s 请求 ```go response, err := client.Do(request) if err != nil { panic(err) } defer response.Body.Close() ``` ### 读取响应实体 response.Body 是 io.Reader 类型,需要手动进行读取 ```go body, err := io.ReadAll(response.Body) if err != nil { panic(err) } fmt.Println(string(body)) ``` ## 示例代码 ```go package main import ( "fmt" "io" "log" "net/http" "net/url" ) const ( authKey = "" password = "" server = "" channel = "channel-1" ) func main() { var link string if channel == "" { link = fmt.Sprintf("http://%s:%s@%s", authKey, password, server) } else { link = fmt.Sprintf("http://%s:%s:%s@%s", authKey, password, channel, server) } proxyURL, _ := url.Parse(link) client := http.Client{ Transport: &http.Transport{ Proxy: http.ProxyURL(proxyURL), }, } request, _ := http.NewRequest("GET", "https://test.ipw.cn", nil) // 如果上面目标站不可用,请使用ip.sb、ipinfo.io、ip-api.com、64.ipcheck.ing response, err := client.Do(request) if err != nil { panic(err) } defer response.Body.Close() body, err := io.ReadAll(response.Body) if err != nil { panic(err) } log.Println("response body", string(body)) } ```
上一篇:没有了
下一篇:没有了
相关文章
长效代理-使用指南-开发版
代理IP操作中的常见问题汇总
隧道代理(全球HTTP)-使用指南-开发版
Postman如何使用代理
Windows10系统如何使用代理IP
独享代理-使用指南-手动版
本文导读