문제 사항
프로젝트에서 요청받은 전체 Header 정보가 필요했다. JavaSpring에서 지원해 주는 @RequestHeader를 통해 전체 Header 정보를 HashMap에 담아 사용을 했다. 로컬 서버를 돌려 기능 테스트 해보니 정상적으로 HashMap에서 Header 정보를 가져오지 못하고 있었다.
✔ 이유
Header의 key값이 잘못 되었던 것이었다. AWS CF에서 전달해 주는 Header를 명세를 확인하고 정확히 입력을 했는데도 불구하고 실제 출력해 보니 대문자, 소문자 차이가 있었던 것이다.
✔ HttpServletRequest.getHeader는 정상적으로 돌아갔던 이유
그동안 사용했던 HttpServletRequest.getHeader는 대소문자 구분 없이 정상적으로 돌아갔다. 그래서 왜 이것이 가능한지 확인을 하고 현재 HashMap에 담겨있는 Header에도 적용을 해보기로 했다.
public boolean equalsIgnoreCase(String s)
HttpServletRequest.getHeader 내부에서는 key값을 비교를 할 때 대소문자 구분 없이 비교를 할 수 있는 equalsIgnoreCase를 사용을 하고 있었다. 그래서 그동안 사용할 때 대소문자 상관없이 정상적으로 Header값들을 가져올 수 있었던 것이다.
✔ 해결하기
Header를 HashMap으로 가져와서 각 Header 정보를 가져오려면, 위와 같이 대소문자 구분 없이 비교를 하면되었다. 그런데 별도의 구현을 하기보다는 기존에 있는 메서드를 사용하기로 했다.
'지난 기록 > 트러블슈팅' 카테고리의 다른 글
인텔리제이 Gradle dependency 인식 오류 (0) | 2024.05.17 |
---|---|
[ IDE ] IntelliJ 터미널 한글이 깨지는 문제 (0) | 2023.06.13 |
[ 인생퍼즐 ] 안드로이드 Recoil 사용할 때 글자 깨짐 (0) | 2022.09.11 |
[ 인생퍼즐 ] RN Navigation 화면 남는 문제 (0) | 2022.08.22 |
[RN] Android Permission "never_ask_again"일 때 권한 허락 (0) | 2022.04.10 |