%5B0%5D

최재혁·2023년 11월 28일

잊어버리기 전에 빠르게 기록.

query string을 list<object> 형태로 받는 api에 요청을 보내려고 했다.

아래는 api 스펙 예시

query paramtype
myWeightAndHeightList<Obejct>
myWeightAndHeight[].weightnumber
myWeightAndHeight[].heightnumber



시험 삼아 curl로 요청을 보내는데, 다음과 같은 형태가 되었다.
curl -X GET --location "https://my-service-host/api/info/personal?myWeightAndHeight%5B0%5D.weight=123&myWeightAndHeight%5B0%5D.height=321" \
    -H "Content-Type: application/json" \
    ...

myWeightAndHeight 뒤에 붙는 %5B0%5D가 뭘까?

Percent-encoding이다.

url parameter에 특수문자를 삽입할 수는 없으니 %(percent)를 붙인 문자열로 해당 특수문자를 인코딩하는 것이다.

즉 파라미터로 들어오려는 List<object> 타입을 인덱스로 접근해야 하는데

  • [%5B
  • ]%5D

처럼 인코딩을 하는 것이다.

%5B0%D = [0]





궁금증 해결
profile
잘못된 고민은 없습니다

0개의 댓글