코딩마을방범대

GET 메소드의 파라미터 기호 공백 처리 본문

🎃 기타/포스트맨

GET 메소드의 파라미터 기호 공백 처리

신짱구 5세 2023. 6. 2. 11:01

key값을 넘겨주는 일이 있었으나 내가 보기엔 값이 같아보이는데 자꾸 equals false가 떠서

수작업으로 찾아보았더니 request로 넘겨주는 값의 공백이 vo객체엔 +로 대체되어 있었다

 

포스트맨으로 아래와 같이 replace로 공백을 +로 대체하려 하였으나

그래도 공백이 그대로 출력되는 상황이였다

var jsonData = JSON.parse(responseBody); 

var channelKey = jsonData.data.channelKey.replace(" ", "+");

if (jsonData) { 
    pm.environment.set("Channel-Key",channelKey); 
}

 

찾아보니 Spring 컨트롤러에서 GET은 +를 공백으로 대체하여 받아온다고 한다!

+ 외에도 !  *  '  (  )  ;  :  @  &  =   $  ,  /  ?  #  [  ] 도 공백으로 변환된다고 한다

 

나 같은 경우에는 코드를 수정할 수 없는 상황이라서

request를 보낼 때 해결해야했다

 

 

첫 번째 시도한 방법으로,

저장 할 때 코드를 이용해서 저장해보았으나 포스트맨 변수에 저장될 때

+로 치환되어 저장되었다

var jsonData = JSON.parse(responseBody); 

var channelKey = jsonData.data.channelKey.replace(" ", "%2B");

if (jsonData) { 
    pm.environment.set("Channel-Key",channelKey); 
}

 

 

 

두 번째 시도한 방법으로,

마지막으로 보낼 request 값을 받은 api response를  encodeURIComponent()로 저장했더니

포스트맨 변수에서도 정상적으로 %2B로 저장되었다

var jsonData = JSON.parse(responseBody); 

var channelKey = jsonData.data.channelKey.replace(" ", "+");

if (jsonData) { 
    pm.environment.set("Channel-Key",encodeURIComponent(channelKey)); 
}

 

 

결론

포스트맨에서 정상적으로 기호를 코드로 변환하여 전송하면 문제없다!!

 


 

참고사이트

[웹 프로그래밍] GET 방식으로 query string 넘길 때 특수문자 사라짐 현상

 

 

SMALL