parent
7629ea5672
commit
f1594312cd
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2022 the original author or authors.
|
||||
* Copyright 2002-2023 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
|
@ -400,12 +400,14 @@ public final class HttpRequestValues {
|
|||
bodyValue = new LinkedMultiValueMap<>(this.requestParams);
|
||||
}
|
||||
else if (uri != null) {
|
||||
// insert into prepared URI
|
||||
uri = UriComponentsBuilder.fromUri(uri)
|
||||
.queryParams(UriUtils.encodeQueryParams(this.requestParams))
|
||||
.build(true)
|
||||
.toUri();
|
||||
}
|
||||
else {
|
||||
// append to URI template
|
||||
uriVars = (uriVars.isEmpty() ? new HashMap<>() : uriVars);
|
||||
uriTemplate = appendQueryParams(uriTemplate, uriVars, this.requestParams);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@ class HttpRequestValuesTests {
|
|||
@ParameterizedTest
|
||||
@ValueSource(strings = {"POST", "PUT", "PATCH"})
|
||||
@SuppressWarnings("unchecked")
|
||||
void requestParamAsFormData(String httpMethod) {
|
||||
void formData(String httpMethod) {
|
||||
|
||||
HttpRequestValues requestValues = HttpRequestValues.builder().setHttpMethod(HttpMethod.valueOf(httpMethod))
|
||||
.setContentType(MediaType.APPLICATION_FORM_URLENCODED)
|
||||
|
|
@ -65,7 +65,7 @@ class HttpRequestValuesTests {
|
|||
}
|
||||
|
||||
@Test
|
||||
void requestParamAsQueryParamsInUriTemplate() {
|
||||
void queryParamsWithUriTemplate() {
|
||||
|
||||
HttpRequestValues requestValues = HttpRequestValues.builder().setHttpMethod(HttpMethod.POST)
|
||||
.setUriTemplate("/path")
|
||||
|
|
@ -99,23 +99,25 @@ class HttpRequestValuesTests {
|
|||
}
|
||||
|
||||
@Test
|
||||
void requestParamAsQueryParamsInUri() {
|
||||
void queryParamsWithPreparedUri() {
|
||||
|
||||
URI uri = URI.create("/my%20path");
|
||||
|
||||
HttpRequestValues requestValues = HttpRequestValues.builder().setHttpMethod(HttpMethod.POST)
|
||||
.setUri(URI.create("/path"))
|
||||
.setUri(uri)
|
||||
.addRequestParameter("param1", "1st value")
|
||||
.addRequestParameter("param2", "2nd value A", "2nd value B")
|
||||
.build();
|
||||
|
||||
assertThat(requestValues.getUri().toString())
|
||||
.isEqualTo("/path?param1=1st%20value¶m2=2nd%20value%20A¶m2=2nd%20value%20B");
|
||||
.isEqualTo("/my%20path?param1=1st%20value¶m2=2nd%20value%20A¶m2=2nd%20value%20B");
|
||||
}
|
||||
|
||||
@Test
|
||||
void requestPart() {
|
||||
HttpHeaders entityHeaders = new HttpHeaders();
|
||||
entityHeaders.add("foo", "bar");
|
||||
HttpEntity<String> entity = new HttpEntity<>("body", entityHeaders);
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
headers.add("foo", "bar");
|
||||
HttpEntity<String> entity = new HttpEntity<>("body", headers);
|
||||
|
||||
HttpRequestValues requestValues = HttpRequestValues.builder()
|
||||
.addRequestPart("form field", "form value")
|
||||
|
|
|
|||
|
|
@ -65,9 +65,9 @@ class RequestPartArgumentResolverTests {
|
|||
|
||||
Object body = this.client.getRequestValues().getBodyValue();
|
||||
assertThat(body).isInstanceOf(MultiValueMap.class);
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
MultiValueMap<String, HttpEntity<?>> map = (MultiValueMap<String, HttpEntity<?>>) body;
|
||||
|
||||
assertThat(map.getFirst("part1").getBody()).isEqualTo("part 1");
|
||||
assertThat(map.getFirst("part2")).isEqualTo(part2);
|
||||
assertThat(((Mono<?>) map.getFirst("part3").getBody()).block()).isEqualTo("part 3");
|
||||
|
|
|
|||
Loading…
Reference in New Issue