Как сохранить baseUrl при использовании uri () весной webflux - PullRequest
0 голосов
/ 17 февраля 2019

Использование пружинной загрузки 2.1.3.RELEASE, WebClient прекратит использование предоставленного baseUrl при передаче метода от URI до uri().Он будет сохранять baseUrl, когда строка передается в uri().

Как я могу предоставить baseUrl и передать URI?

public WebClient webClient() {
  return WebClient.builder()
    .baseUrl("https://example.com/")
    .build();
}

и

webClient.get().uri(URI.create("/foo/%23bar"))... 

throws

java.lang.IllegalArgumentException: URI не является абсолютным:

и URL запроса становится

request url: /foo/%23bar

1 Ответ

0 голосов
/ 17 февраля 2019

Если вы передаете новый объект URI, вы переопределяете базовый URI.Вы должны использовать метод uri с лямбдой в качестве параметра, как в примере:

final WebClient webClient = WebClient
  .builder()
  .baseUrl("http://localhost")
  .build();
webClient
  .get()
  .uri(uriBuilder -> uriBuilder.pathSegment("api", "v2", "json", "test").build())
  .exchange();
...