欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

RestTemplate使用Proxy代理作為跳板發(fā)送請(qǐng)求

 更新時(shí)間:2022年03月17日 12:04:20   作者:字母哥哥  
這篇文章主要為大家介紹了RestTemplate使用代理proxy作為跳板發(fā)送請(qǐng)求的方法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步

前言

本文是精講RestTemplate第10篇,前篇的blog訪(fǎng)問(wèn)地址如下:

RestTemplate在Spring或非Spring環(huán)境下使用精講

RestTemplate實(shí)現(xiàn)多種底層HTTP客戶(hù)端類(lèi)庫(kù)的切換用法

RestTemplate發(fā)送HTTP GET請(qǐng)求使用方法詳解

RestTemplate發(fā)送HTTP POST請(qǐng)求使用方法詳解

RestTemplate的DELETE及PUT等請(qǐng)求方法使用精講

RestTemplate文件上傳下載與大文件流式下載

RestTemplate自定義請(qǐng)求失敗異常處理示例解析

RestTemplate請(qǐng)求失敗自動(dòng)重啟機(jī)制精講

RestTemplate如何通過(guò)HTTP Basic Auth認(rèn)證示例說(shuō)明

本節(jié)我們要為大家介紹一下,如何在使用RestTemplate發(fā)送請(qǐng)求的時(shí)候使用代理Proxy。至于為什么要使用代理,給大家舉一個(gè)簡(jiǎn)單的例子:一些做過(guò)爬蟲(chóng)的同學(xué)可能都知道,當(dāng)爬蟲(chóng)高頻的多次訪(fǎng)問(wèn)一個(gè)網(wǎng)站數(shù)據(jù),可能導(dǎo)致請(qǐng)求客戶(hù)端Ip被封鎖的可能。很多情況下,做爬蟲(chóng)的企業(yè)就維護(hù)一個(gè)代理IP池,每發(fā)送一次請(qǐng)求,就更換一次IP。 代理Proxy作為跳板成為服務(wù)的直接訪(fǎng)問(wèn)者,代理使用者(真正的客戶(hù)端)是間接訪(fǎng)問(wèn)服務(wù)。這樣在服務(wù)端看來(lái),每次請(qǐng)求是代理發(fā)出的,從代理IP池中一直更換代理發(fā)送請(qǐng)求,這樣能夠降低IP封鎖的可能。

我們本節(jié)就來(lái)為大家介紹,作為一個(gè)代理使用者,該如何使用RestTemplate發(fā)送請(qǐng)求的時(shí)候使用代理Proxy。

一、搭建一個(gè)代理服務(wù)器

筆者只從知識(shí)的層面去講解使用方法,所以不做蠅營(yíng)狗茍的勾當(dāng)。代理服務(wù)器還是由我自己來(lái)搭建用來(lái)測(cè)試,在我的一個(gè)CentOS服務(wù)器上安裝tinyproxy,tinyproxy可以提供代理服務(wù)。

# 安裝tinyproxy 命令
sudo yum install tinyproxy -y

編輯tinyproxy的配置文件vim /etc/tinyproxy/tinyproxy.conf。為該代理配置允許訪(fǎng)問(wèn)的使用者客戶(hù)端ip,也就是我家的ip,所以這個(gè)代理服務(wù)只能我用,其他人用不了。

# 代理服務(wù)端口
Port 1080
# 允許哪個(gè)客戶(hù)端使用該代理程序?
Allow xxx.xxx.xxx.xxx

啟動(dòng)tinyproxy提供代理服務(wù),最好檢查一下防火墻是否開(kāi)放了1080端口。

# 代理服務(wù)端口
Port 1080
# 允許哪個(gè)客戶(hù)端使用該代理程序?
Allow xxx.xxx.xxx.xxx

二、用于測(cè)試的服務(wù)端

我們這次要訪(fǎng)問(wèn)的服務(wù)端是:http://www.httpbin.org, 這個(gè)網(wǎng)站是提供在線(xiàn)的HTTP訪(fǎng)問(wèn)服務(wù)的網(wǎng)站。我們可以用它進(jìn)行測(cè)試。

http://www.httpbin.org/ip是我們本次要訪(fǎng)問(wèn)的服務(wù),響應(yīng)結(jié)果是訪(fǎng)問(wèn)者的IP。

我在家里使用電腦訪(fǎng)問(wèn)這個(gè)服務(wù)的時(shí)候結(jié)果如下:

上圖沒(méi)有使用代理,所以返回的是我家的ip。如果我使用代理訪(fǎng)問(wèn),返回結(jié)果應(yīng)該是proxy代理服務(wù)器的ip地址。

三、代理使用者RestTemplate

我的第一小節(jié)中的代理服務(wù)器的ip是88.99.10.251,tinyproxy代理服務(wù)端口1080。下文代碼通過(guò)SimpleClientHttpRequestFactory設(shè)置訪(fǎng)問(wèn)代理

@SpringBootTest
class 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)  //設(shè)置代理服務(wù)
         )
      );
      restTemplate.setRequestFactory(requestFactory);
      //發(fā)送請(qǐng)求
      String result = restTemplate.getForObject(url, String.class);
      System.out.println(result);  //打印響應(yīng)結(jié)果
   }
}

代理類(lèi)型可以是HTTP也可以是SOCKS。下圖是 "http://www.httpbin.org/ip" 的請(qǐng)求響應(yīng)結(jié)果,返回的是代理服務(wù)器的ip,而不是我家里的ip。說(shuō)明我們?yōu)镽estTemplate 設(shè)置的代理生效了。

以上就是RestTemplate使用Proxy代理作為跳板發(fā)送請(qǐng)求的詳細(xì)內(nèi)容,更多關(guān)于RestTemplate使用Proxy代理發(fā)送請(qǐng)求的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

以上就是RestTemplate使用Proxy代理作為跳板發(fā)送請(qǐng)求的詳細(xì)內(nèi)容,更多關(guān)于RestTemplate使用Proxy代理發(fā)送請(qǐng)求的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Java結(jié)合Vue項(xiàng)目打包并進(jìn)行服務(wù)器部署

    Java結(jié)合Vue項(xiàng)目打包并進(jìn)行服務(wù)器部署

    本文主要介紹了Java結(jié)合Vue項(xiàng)目打包并進(jìn)行服務(wù)器部署,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • 詳解Java的MyBatis框架中的緩存與緩存的使用改進(jìn)

    詳解Java的MyBatis框架中的緩存與緩存的使用改進(jìn)

    很多人在使用MyBatis的緩存后經(jīng)常會(huì)遇到MySQL分頁(yè)查詢(xún)的顯示問(wèn)題,針對(duì)于此,這里我們就來(lái)詳解Java的MyBatis框架中的緩存與緩存的使用改進(jìn),首先來(lái)回顧一下MyBatis的緩存機(jī)制與執(zhí)行:
    2016-06-06
  • Springboot+MyBatist實(shí)現(xiàn)前后臺(tái)交互登陸功能方式

    Springboot+MyBatist實(shí)現(xiàn)前后臺(tái)交互登陸功能方式

    這篇文章主要介紹了Springboot+MyBatist實(shí)現(xiàn)前后臺(tái)交互登陸功能方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • Java程序運(yùn)行之JDK,指令javac java解讀

    Java程序運(yùn)行之JDK,指令javac java解讀

    這篇文章主要介紹了Java程序運(yùn)行之JDK,指令javac java,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • Spring中@PostConstruct的實(shí)現(xiàn)方法

    Spring中@PostConstruct的實(shí)現(xiàn)方法

    大多數(shù)java程序員都使用過(guò)@PostConstruct注解,它的作用就是在Bean初始化完成后執(zhí)行,相當(dāng)于我們常說(shuō)的init()方法,但是我們看@PostConstruct只有單單的一個(gè)注解,它到底是如何實(shí)現(xiàn)在Bean初始化完成后就被調(diào)用的呢,本文將詳細(xì)給大家介紹一下
    2023-06-06
  • 利用Java如何實(shí)現(xiàn)將二維數(shù)組轉(zhuǎn)化為鏈?zhǔn)絻?chǔ)存

    利用Java如何實(shí)現(xiàn)將二維數(shù)組轉(zhuǎn)化為鏈?zhǔn)絻?chǔ)存

    鏈?zhǔn)浇Y(jié)構(gòu)不要求邏輯上相鄰的節(jié)點(diǎn)在物理位置上也相鄰,節(jié)點(diǎn)間的邏輯關(guān)系是由附加的指針字段表示的,通常借助于程序設(shè)計(jì)中的指針結(jié)構(gòu)來(lái)實(shí)現(xiàn),這篇文章主要給大家介紹了關(guān)于利用Java如何實(shí)現(xiàn)將二維數(shù)組轉(zhuǎn)化為鏈?zhǔn)絻?chǔ)存的相關(guān)資料,需要的朋友可以參考下
    2021-12-12
  • 詳解Java設(shè)計(jì)模式之職責(zé)鏈模式

    詳解Java設(shè)計(jì)模式之職責(zé)鏈模式

    責(zé)任鏈模式是一種行為設(shè)計(jì)模式,使多個(gè)對(duì)象都有機(jī)會(huì)處理請(qǐng)求,從而避免請(qǐng)求的發(fā)送者和接收者之間的耦合關(guān)系,文中通過(guò)代碼示例給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05
  • Java封裝數(shù)組之改進(jìn)為泛型數(shù)組操作詳解

    Java封裝數(shù)組之改進(jìn)為泛型數(shù)組操作詳解

    這篇文章主要介紹了Java封裝數(shù)組之改進(jìn)為泛型數(shù)組操作,結(jié)合實(shí)例形式詳細(xì)分析了Java封裝數(shù)組為泛型數(shù)組相關(guān)原理、操作技巧與注意事項(xiàng),需要的朋友可以參考下
    2020-03-03
  • SpringBoot項(xiàng)目集成FTP的方法步驟

    SpringBoot項(xiàng)目集成FTP的方法步驟

    本文主要介紹了SpringBoot項(xiàng)目集成FTP的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • Spring BeanPostProcessor接口使用詳解

    Spring BeanPostProcessor接口使用詳解

    本篇文章主要介紹了Spring BeanPostProcessor接口使用詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-01-01

最新評(píng)論