2 개의 매개 변수를받는 컨트롤러가 있습니다.
@PostMapping(value = "/myEndPoint")
public ResponseEntity<StreamingResponseBody> process(final InputStream data,
@RequestParam final String param1,
@RequestParam final String base64Param) {
return ok().body(doSomething(base64Param.getBytes(), param1, data));
}
base64Param String 매개 변수에는 +
문자 가 포함 되지만 물론 Spring 컨트롤러는이를 공백으로 대체합니다.
이 문제를 해결하고 컨트롤러에게 +
캐릭터 를 내버려 두라고 지시하는 방법을 알고 있습니까?
업데이트-나는 시도했다
UriComponentsBuilder builder = fromUriString(format("http://localhost:%s/%s", serverPort, "/myEndPoint"))
.queryParam("param1", param1)
.queryParam("base64Param", Base64.getUrlEncoder().encodeToString(base64ParamValueWithPluses.getBytes()));
하지만 컨트롤러에서 base64Param 매개 변수를 다음과 같이 디코딩해야합니다.
String decodedBaseParam64 = Base64.getUrlDecoder().decode(encodeBaseParam64);
이것을 인코딩하는 방법이 +
있습니까? 그래서 Spring이 보존 된 문자로 자동으로 디코딩 할 것 입니까?