Spring WebClient 設(shè)置代理和https訪問

看了下spring webflux的知識點颁独,隨便寫了個小工具去解析youtube上的視頻地址,然后就有了設(shè)置代理和ssl部分的實踐吨枉,記錄一下

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-webflux</artifactId>
</dependency>

一 . webclient設(shè)置SSL

SslContext sslContext = SslContextBuilder
    .forClient()
    .trustManager(InsecureTrustManagerFactory.INSTANCE)
    .build();

ReactorClientHttpConnector connector = new ReactorClientHttpConnector(options -> options.sslContext(sslContext)) ;

WebClient client = WebClient.builder().clientConnector(connector)
    .baseUrl("https://www.youtube.com")
    .build();

二 . webclient設(shè)置代理

SslContext sslContext = SslContextBuilder
    .forClient()
    .trustManager(InsecureTrustManagerFactory.INSTANCE)
    .build();

ReactorClientHttpConnector connector = new ReactorClientHttpConnector(options -> options
    .httpProxy(addressSpec -> addressSpec
        .address(new InetSocketAddress("127.0.0.1", 1080)))
    );

WebClient client = WebClient.builder().clientConnector(connector)
    .baseUrl("https://www.youtube.com")
    .build();

三 . get請求

// 比如訪問 http://www.xxx.com/playlist?param=xxxx
WebClient client = WebClient.builder()
        .baseUrl("http://www.xxx.com")
        .build();
WebClient.ResponseSpec responseSpec = client
        .get()
        .uri(uriBuilder -> uriBuilder
                .path("playlist") // 子路徑
                .queryParam("param", "xxxx") // 參數(shù)
                .build())
        .acceptCharset(StandardCharsets.UTF_8)
        .accept(MediaType.ALL)
        .retrieve();
// 返回Mono還是Flux 要根據(jù)接口實際情況調(diào)整
 Mono<String> objectMono = responseSpec.bodyToMono(String.class);
 // Flux<String> objectFlux = responseSpec.bodyToFlux(String.class);

四 . post請求(form表單參數(shù))

// 比如訪問 http://www.xxx.com/postReq  , 用form表單方式傳參
WebClient client = WebClient.builder()
        .baseUrl("http://www.xxx.com")
        .build();
WebClient.ResponseSpec responseSpec = client
        .post()
        .uri("postReq")
        .body(BodyInserters.fromFormData("mediaurl", url)) // form表單參數(shù)蹦渣,可以增加多個參數(shù)
        .retrieve();
Mono<String> objectMono = responseSpec.bodyToMono(String.class);

五 . 通過URL對象獲取請求信息

String url = "http://www.xxx.com/getReq?param=abc&param2=cde" ;
URL finalCheckUrl = new URL(url);
WebClient.ResponseSpec retrieve = client.get()
        .uri(uriBuilder -> uriBuilder
                .scheme(finalCheckUrl.getProtocol())
                .host(finalCheckUrl.getHost())
                .path(finalCheckUrl.getPath())
                .query(finalCheckUrl.getQuery())
                .build())
        .retrieve();

注意: 如果請求的地址都是同一個host, 把webclient 抽取出來,不要每次請求都去新建webclient .

強烈推薦以下文章貌亭,作為入門知識

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末柬唯,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子圃庭,更是在濱河造成了極大的恐慌锄奢,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,265評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件剧腻,死亡現(xiàn)場離奇詭異拘央,居然都是意外死亡,警方通過查閱死者的電腦和手機书在,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評論 2 385
  • 文/潘曉璐 我一進店門灰伟,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人儒旬,你說我怎么就攤上這事栏账。” “怎么了栈源?”我有些...
    開封第一講書人閱讀 156,852評論 0 347
  • 文/不壞的土叔 我叫張陵发笔,是天一觀的道長。 經(jīng)常有香客問我凉翻,道長了讨,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,408評論 1 283
  • 正文 為了忘掉前任制轰,我火速辦了婚禮前计,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘垃杖。我一直安慰自己男杈,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,445評論 5 384
  • 文/花漫 我一把揭開白布调俘。 她就那樣靜靜地躺著伶棒,像睡著了一般旺垒。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上肤无,一...
    開封第一講書人閱讀 49,772評論 1 290
  • 那天先蒋,我揣著相機與錄音,去河邊找鬼宛渐。 笑死竞漾,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的窥翩。 我是一名探鬼主播业岁,決...
    沈念sama閱讀 38,921評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼寇蚊!你這毒婦竟也來了笔时?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,688評論 0 266
  • 序言:老撾萬榮一對情侶失蹤仗岸,失蹤者是張志新(化名)和其女友劉穎糊闽,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體爹梁,經(jīng)...
    沈念sama閱讀 44,130評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡右犹,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,467評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了姚垃。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片念链。...
    茶點故事閱讀 38,617評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖积糯,靈堂內(nèi)的尸體忽然破棺而出掂墓,到底是詐尸還是另有隱情,我是刑警寧澤看成,帶...
    沈念sama閱讀 34,276評論 4 329
  • 正文 年R本政府宣布君编,位于F島的核電站,受9級特大地震影響川慌,放射性物質(zhì)發(fā)生泄漏吃嘿。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,882評論 3 312
  • 文/蒙蒙 一梦重、第九天 我趴在偏房一處隱蔽的房頂上張望兑燥。 院中可真熱鬧,春花似錦琴拧、人聲如沸降瞳。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽挣饥。三九已至除师,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間扔枫,已是汗流浹背汛聚。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留茧吊,地道東北人贞岭。 一個月前我還...
    沈念sama閱讀 46,315評論 2 360
  • 正文 我出身青樓八毯,卻偏偏與公主長得像搓侄,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子话速,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,486評論 2 348

推薦閱讀更多精彩內(nèi)容