관리 메뉴

공부 기록장 💻

[HTML/Web] URL 링크 인코딩 과정에서 % 뒤에 숫자 25가 자동적으로 추가되는 에러 해결하기 (HTML URL Encoding Reference 참고) 본문

# Tech Studies/Web

[HTML/Web] URL 링크 인코딩 과정에서 % 뒤에 숫자 25가 자동적으로 추가되는 에러 해결하기 (HTML URL Encoding Reference 참고)

dream_for 2023. 2. 21. 11:22

 

공공데이터포털의 날씨 예보 Open API를 호출하여 진행중인 프로젝트에 적용하는 상황에서,

Service Key에 포함되어 있는 ASCII charcater code중 하나인 % 가 인코딩 되는 과정에서 오류가 발생하며 API 호출이 제대로 되지 않는 이슈가 있었다.

 

부여받은 Encoding용 일반 인증키는 아래와 같다.

중간중간 보이는 % 문자가 계속해서 문제를 발생시켰다.

 

 

구글 검색 시 % 문자가 포함된 문장을 검색하면 원하는 결과를 얻기가 어렵다.

결국 ChatGPT를 활용하여 답을 얻고자 했다.

 

역시나 원하는 결과를 얻을 수 있었다..!

Request URL에 포함되어 있는 % 문자를 인코딩 하는 과정에서 %25 로 해석을 하게 되어

자동적으로 %뒤에 25를 붙이게 된다는 내용이었다.

 

 

위의 질문 위에서 이미 Java Code에 대한 질문이 몇 개 더 있어서 그랬던 건지,

친절하게 %25를 replace하는 방법까지 알려줬다.

(물론 질문을 정확히 하지 않은 탓에 chat gpt가 제대로 이해하지 못한 결과 %를 %25로 replace하는 코드를 적어주었다..)

 

 

역시나 위의 결과를 바탕으로 request url을 직접 출력해보니 중간중간 25 숫자들이 추가되어 문제가 발생한 것임을 깨달을 수 있었다.

 

w3wschool 사이트에서 URL encoding reference를 읽어보니, 역시 문자 '%'가 안전하지 않은 환경에서 "%25" 로 변환되어 나타난다는 것을 다시 한 번 확인할 수 있다.

 

 

 

직접 인증받은 service Key와, URL에서 API를 호출하며 변환된 service Key를 확인해보니 역시나 25 문자열이 추가되어 있다.

 

replace 메서드를 이용해 25숫자가 중간중간 추가가 된 것을 제거해주고 나니,

 

 

작성한 테스트케이스 통과!

 

728x90
반응형
Comments