chr*_*con 7 java spring spring-webflux
使用 spring boot 2.1.3.RELEASE,在传递to方法时WebClient将停止使用所提供的。当一个字符串被传递给它时它会保留。baseUrlURIuri()baseUrluri()
我如何提供一个baseUrl并通过一个URI?
public WebClient webClient() {
return WebClient.builder()
.baseUrl("https://example.com/")
.build();
}
Run Code Online (Sandbox Code Playgroud)
和
webClient.get().uri(URI.create("/foo/%23bar"))...
Run Code Online (Sandbox Code Playgroud)
投掷
java.lang.IllegalArgumentException: URI 不是绝对的:
并且请求网址变为
request url: /foo/%23bar
Run Code Online (Sandbox Code Playgroud)
Kon*_*aev 10
如果您传递新的 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();
Run Code Online (Sandbox Code Playgroud)
Pro*_*was 10
稍微不同的方法 - 在现有 uri 对象上使用路径而不是pathSegment。它有助于以配置/常量形式方便地维护路径。
final WebClient webClient = WebClient.builder()
.baseUrl("http://localhost")
.build();
webClient.get()
.uri(uriBuilder -> uriBuilder.path("api/v2/json/test").build())
.exchange();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6400 次 |
| 最近记录: |