亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在spring webflux中使用uri()時如何保留baseUrl

在spring webflux中使用uri()時如何保留baseUrl

嚕嚕噠 2022-06-23 10:20:42
使用 spring boot 2.1.3.RELEASE,將在傳遞to方法時WebClient停止使用提供的。當一個字符串被傳遞給它時它會保留。baseUrlURIuri()baseUrluri()我怎樣才能提供一個baseUrl并通過一個URI?public WebClient webClient() {  return WebClient.builder()    .baseUrl("https://example.com/")    .build();}和webClient.get().uri(URI.create("/foo/%23bar"))... 投擲java.lang.IllegalArgumentException:URI 不是絕對的:并且請求網址變為request url: /foo/%23bar
查看完整描述

3 回答

?
湖上湖

TA貢獻2003條經驗 獲得超2個贊

如果您傳遞新的 URI 對象,則會覆蓋基本 URI。您應該使用uri帶有 lambda 作為參數的方法,例如:


final WebClient webClient = WebClient

  .builder()

  .baseUrl("http://localhost")

  .build();

webClient

  .get()

  .uri(uriBuilder -> uriBuilder.pathSegment("api", "v2", "json", "test").build())

  .exchange();


查看完整回答
反對 回復 2022-06-23
?
翻翻過去那場雪

TA貢獻2065條經驗 獲得超14個贊

稍微不同的方式 -在現有 uri 對象上使用path而不是pathSegment 。它有助于以配置/常量形式方便地維護路徑。


final WebClient webClient = WebClient

.builder()

.baseUrl("http://localhost")

.build();

webClient

.get()

.uri(uriBuilder -> uriBuilder.path("api/v2/json/test").build())

.exchange();


查看完整回答
反對 回復 2022-06-23
?
夢里花落0921

TA貢獻1772條經驗 獲得超6個贊

一旦你UriBuilderFactory通過調用設置了一個像你一樣的baseUrl(String uri)方法,添加所需分支的最簡單方法是使用 uri(String uri,Object... uriVariables)簽名,而不指定第二個參數,因為它聲明為 varargs 然后可以是 0 長度。


在您的情況下,它只是簡化為:


public WebClient webClient() {

  return WebClient.builder()

    .baseUrl("https://example.com")

    .build();

}


webClient.get().uri("/foo/bar")


查看完整回答
反對 回復 2022-06-23
  • 3 回答
  • 0 關注
  • 212 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號