이 같은 요청 처리기와 http://localhost:8080/things/ZhaD2lk27XQPRJtwrABltd+UTWXcbnY%2FTrpxGP7VDVo=
내 봄 부팅 응용 프로그램 RestController을 GET 호출 할 때 :springboot rest controller를 사용하여 url 경로의 space()에 대해 플러스 (+)를 디코딩하는 이유는 무엇입니까?
@RequestMapping("/things/{thingId}")
public ResponseEntity<Thing> getThing(
@PathVariable String thingId) {
System.out.println("thingId=" + thingId);
...
결과에 다음 대신 내가 ZhaD2lk27XQPRJtwrABltd+UTWXcbnY/TrpxGP7VDVo=
을 기대했을 것이다 무엇 ZhaD2lk27XQPRJtwrABltd UTWXcbnY/TrpxGP7VDVo=
인쇄된다.
보시 다시 피가 공간으로 변하고 있습니다. 이것은 경로 부분과 쿼리 부분에서만 발생하지 않아야합니다. 이것이 내가 URL을 작성하는 데 사용하는 UriComponentsBuilder.build().encode()
스프링이 더하기를 %2B
으로 바꾸지 않는 이유입니다.
인코딩 된 슬래시 (/)가 작동하려면 이미 응용 프로그램을 조정해야했습니다. 자세한 내용은 REST Endpoint unreachable if ID in URL contains %2F을 참조하십시오.
Tomcat embed 8.5.11을 사용하는 SpringBoot 1.4.4.RELEASE를 사용하고 있습니다.
저는 Spring RestTemplate, Postman 및 Chrome에서 서비스를 호출 해 보았습니다. 모든 경우에서 같은 결과가 나타납니다. 플러스는 공백으로 바뀝니다.
브라우저에 URL을 입력하고 있습니까? 또는 js를 사용하여 서비스를 호출합니까? 또는 자바 클라이언트에서 서비스를 호출하고 있습니까? – reos