코딩마을방범대
GET 메소드의 파라미터 기호 공백 처리 본문
728x90
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 넘길 때 특수문자 사라짐 현상
728x90
'🎃 기타 > 포스트맨' 카테고리의 다른 글
포스트맨 데이터 백업하기 (0) | 2025.01.17 |
---|---|
포스트맨을 이용한 AES 암호화 (0) | 2023.06.02 |
포스트맨에서 response 값 변수로 사용하기 (0) | 2023.05.28 |