Browse Source

Make sure built ClientResponses have HttpRequest

pull/23292/head
Arjen Poutsma 7 years ago
parent
commit
dae4509152
  1. 27
      spring-webflux/src/main/java/org/springframework/web/reactive/function/client/DefaultClientResponseBuilder.java

27
spring-webflux/src/main/java/org/springframework/web/reactive/function/client/DefaultClientResponseBuilder.java

@ -16,6 +16,7 @@ @@ -16,6 +16,7 @@
package org.springframework.web.reactive.function.client;
import java.net.URI;
import java.nio.charset.StandardCharsets;
import java.util.function.Consumer;
@ -30,7 +31,6 @@ import org.springframework.http.HttpRequest; @@ -30,7 +31,6 @@ import org.springframework.http.HttpRequest;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseCookie;
import org.springframework.http.client.reactive.ClientHttpResponse;
import org.springframework.lang.Nullable;
import org.springframework.util.Assert;
import org.springframework.util.CollectionUtils;
import org.springframework.util.LinkedMultiValueMap;
@ -44,6 +44,26 @@ import org.springframework.util.MultiValueMap; @@ -44,6 +44,26 @@ import org.springframework.util.MultiValueMap;
*/
final class DefaultClientResponseBuilder implements ClientResponse.Builder {
private static final HttpRequest EMPTY_REQUEST = new HttpRequest() {
private final URI empty = URI.create("");
@Override
public String getMethodValue() {
return "UNKNOWN";
}
@Override
public URI getURI() {
return this.empty;
}
@Override
public HttpHeaders getHeaders() {
return HttpHeaders.EMPTY;
}
};
private ExchangeStrategies strategies;
private HttpStatus statusCode = HttpStatus.OK;
@ -54,13 +74,13 @@ final class DefaultClientResponseBuilder implements ClientResponse.Builder { @@ -54,13 +74,13 @@ final class DefaultClientResponseBuilder implements ClientResponse.Builder {
private Flux<DataBuffer> body = Flux.empty();
@Nullable
private HttpRequest request;
public DefaultClientResponseBuilder(ExchangeStrategies strategies) {
Assert.notNull(strategies, "ExchangeStrategies must not be null");
this.strategies = strategies;
this.request = EMPTY_REQUEST;
}
public DefaultClientResponseBuilder(ClientResponse other) {
@ -72,6 +92,9 @@ final class DefaultClientResponseBuilder implements ClientResponse.Builder { @@ -72,6 +92,9 @@ final class DefaultClientResponseBuilder implements ClientResponse.Builder {
if (other instanceof DefaultClientResponse) {
this.request = ((DefaultClientResponse) other).request();
}
else {
this.request = EMPTY_REQUEST;
}
}

Loading…
Cancel
Save