🛸 使用代理

🛸 使用代理

众所周知,我们平时访问HTTP,就是直接输入URL外加Query参数或Body参数就开始直接发送请求,随后等待服务端响应便可。请求通过内网或公网一般都可以正常工作(如果客户端和服务端设备正常联通网络的话),就如下图所示:

# 正向代理 但也有很多服务由于网络限制等诸多原因,无法直接访问到。这时候就需要先连接代理服务器,然后再由代理服务器转发请求到您原本要访问的原始服务器。

这种方式,便称为正向代理,过程如下图所示:

当然,正向代理除了能访问原本访问不到的资源这一功能外,还有其它用处:

访问原来无法访问的资源,如: Google、油管、企业私有网络服务等 做缓存,加速访问速度 对客户端访问授权和认证 记录用户访问记录(上网行为管理) 除了有正向代理外,自然也有反向代理,但这个概念不在本文档讨论范围,有兴趣可以自行搜索查询相关资料。

# 设置正向代理 Forest从1.5.0-RC1版本开始支持HTTP网络代理,而作为一个HTTP客户端框架,自然提供的是对正向代理的支持。

通过@HTTPProxy注解便可以非常简单地为某一个请求方法设置代理,该注解有两个属性:

host: 代理服务器主机地址

port: 代理服务器端口号

/**

* 使用 @HTTPProxy 注解设置代理服务器

* host属性为代理服务器主机地址

* port属性为代理服务器端口号

*/

@Post(

url = "http://localhost:8080/hello",

data = "username=foo&password=123456"

)

@HTTPProxy(host = "127.0.0.1", port = "10801")

String simplePostWithProxy(@Header("Accept") String accept);

1234567891011@HTTPProxy注解也可以设置在接口类上,批量给接口中所有方法设置相同的代理服务器

/**

* 为 PostClient 接口中所有的请发方法设置代理服务器

*/

@BaseRequest(baseURL = "http://localhost:8080")

@HTTPProxy(host = "127.0.0.1", port = "10801")

public interface PostClient {

... ...

}

1234567891011# 设置用户名密码 如果您访问的代理服务器需要进行身份校验,则在 @HTTProxy 注解中设置用户名和密码

/**

* 在 @HTTPProxy 注解中有 username 和 password 属性

* 分别用于设置代理服务的用户名和密码进行身份验证

*/

@Post(

url = "http://localhost:8080/hello",

data = "username=foo&password=123456"

)

@HTTPProxy(

host = "127.0.0.1",

port = "10801",

username = "foo",

password = "bar"

)

String simplePostWithProxy(@Header("Accept") String accept);

12345678910111213141516

相关推荐

2025男包十大品牌排行榜
beat365唯一的网址

2025男包十大品牌排行榜

07-17 👁️‍🗨️ 5187
十大最具影响力足球运动员
bat365入口

十大最具影响力足球运动员

06-29 👁️‍🗨️ 4988
十大最具影响力足球运动员
bat365入口

十大最具影响力足球运动员

06-29 👁️‍🗨️ 4988
玩客云Alist离线下载+Aria2实现各大网盘下载
beat365唯一的网址

玩客云Alist离线下载+Aria2实现各大网盘下载

07-15 👁️‍🗨️ 6311
加对方微信怎么加
beat365唯一的网址

加对方微信怎么加

07-21 👁️‍🗨️ 9530
世界杯东道主直接进世界杯吗,世界杯东道主条件
365scores下载

世界杯东道主直接进世界杯吗,世界杯东道主条件

07-14 👁️‍🗨️ 782
返回FALSE和0的区别
beat365唯一的网址

返回FALSE和0的区别

06-30 👁️‍🗨️ 8773
广州日报
365scores下载

广州日报

08-09 👁️‍🗨️ 2570
借条怎么写才具有 “法律杀伤力”?范本 + 避坑指南!