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();

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();

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")
添加回答
舉報