本文是精讲RestTemplate第10篇,前篇的blog拜访地址如下:
- 精讲RestTemplate第1篇-在Spring或非Spring环境下如何应用
- 精讲RestTemplate第2篇-多种底层HTTP客户端类库的切换
- 精讲RestTemplate第3篇-GET申请应用办法详解
- 精讲RestTemplate第4篇-POST申请办法应用详解
- 精讲RestTemplate第5篇-DELETE、PUT等申请办法应用详解
- 精讲RestTemplate第6篇-文件上传下载与大文件流式下载
- 精讲RestTemplate第7篇-自定义申请失败异样解决
- 精讲RestTemplate第8篇-申请失败主动重试机制
- 精讲RestTemplate第9篇-如何通过HTTP Basic Auth认证
本节咱们要为大家介绍一下,如何在应用RestTemplate发送申请的时候应用代理Proxy。至于为什么要应用代理,给大家举一个简略的例子:一些做过爬虫的同学可能都晓得,当爬虫高频的屡次拜访一个网站数据,可能导致申请客户端Ip被封闭的可能。很多状况下,做爬虫的企业就保护一个代理IP池,每发送一次申请,就更换一次IP。
代理Proxy作为跳板成为服务的间接访问者,代理使用者(真正的客户端)是间接拜访服务。这样在服务端看来,每次申请是代理收回的,从代理IP池中始终更换代理发送申请,这样可能升高IP封闭的可能。
咱们本节就来为大家介绍,作为一个代理使用者,该如何应用RestTemplate发送申请的时候应用代理Proxy。
一、搭建一个代理服务器
笔者只从常识的层面去解说应用办法,所以不做蝇营狗苟的勾当。代理服务器还是由我本人来搭建用来测试,在我的一个CentOS服务器上安装tinyproxy,tinyproxy能够提供代理服务。
# 装置tinyproxy 命令sudo yum install tinyproxy -y
编辑tinyproxy的配置文件vim /etc/tinyproxy/tinyproxy.conf
。为该代理配置容许拜访的使用者客户端ip,也就是我家的ip,所以这个代理服务只能我用,其他人用不了。
# 代理服务端口Port 1080# 容许哪个客户端应用该代理程序?Allow xxx.xxx.xxx.xxx
启动tinyproxy提供代理服务,最好检查一下防火墙是否凋谢了1080端口。
systemctl start tinyproxy.service
二、用于测试的服务端
- 咱们这次要拜访的服务端是:
http://www.httpbin.org
, 这个网站是提供在线的HTTP拜访服务的网站。咱们能够用它进行测试。 http://www.httpbin.org/ip
是咱们本次要拜访的服务,响应后果是访问者的IP。
我在家里应用电脑拜访这个服务的时候后果如下:
上图没有应用代理,所以返回的是我家的ip。如果我应用代理拜访,返回后果应该是proxy代理服务器的ip地址。
三、代理使用者RestTemplate
我的第一大节中的代理服务器的ip是88.99.10.251,tinyproxy代理服务端口1080。下文代码通过SimpleClientHttpRequestFactory设置拜访代理
@SpringBootTestclass ProxyTests { @Resource private RestTemplate restTemplate; @Test void testProxyIp() { String url = "http://www.httpbin.org/ip"; SimpleClientHttpRequestFactory requestFactory = new SimpleClientHttpRequestFactory(); requestFactory.setProxy( new Proxy( Proxy.Type.HTTP, new InetSocketAddress("88.99.10.251", 1080) //设置代理服务 ) ); restTemplate.setRequestFactory(requestFactory); //发送申请 String result = restTemplate.getForObject(url, String.class); System.out.println(result); //打印响应后果 }}
代理类型能够是HTTP也能够是SOCKS。下图是 "http://www.httpbin.org/ip" 的申请响应后果,返回的是代理服务器的ip,而不是我家里的ip。阐明咱们为RestTemplate 设置的代理失效了。
欢送关注我的博客,外面有很多精品合集
- 本文转载注明出处(必须带连贯,不能只转文字):字母哥博客。
感觉对您有帮忙的话,帮我点赞、分享!您的反对是我不竭的创作能源! 。另外,笔者最近一段时间输入了如下的精品内容,期待您的关注。
- 《手摸手教你学Spring Boot2.0》
- 《Spring Security-JWT-OAuth2一本通》
- 《实战前后端拆散RBAC权限管理系统》
- 《实战SpringCloud微服务从青铜到王者》
- 《VUE深入浅出系列》