기타

공공데이터 포털 (SERVICE KEY IS NOT REGISTERED ERROR)

소사역 2020. 4. 16. 16:54

현재 개인적으로 MVVM 패턴을 적용한 Kotlin 토이 프로젝트를 진행 중입니다.

 

공공데이터포털에서 API를 신청해서 개발 중인데요

 

공공데이터 포털 doc 에 명시되어있지 않은 부분 때문에 시간을 많이 잡아먹었습니다...

 

분명히 정상적인 API 키를 받았고, 키를 받은지 1시간이 경과 했지만 아래와 같은 오류가 계속 발생했습니다.

 

공공데이터포털에서 서비스 호출시 SERVICE KEY IS NOT REGISTERED ERROR(등록되지 않은 서비스 키)라고 나올 경우

 

* 해당 키는 공유가 불가능하므로 일부분을 조금 수정하였습니다.

 

Ex)

정상적인 키 :

S9clkaRNYI3IsIkBXLS%2BIrtxLnFNkUbfg46FNTuMTfAeAlBVnLDjjgtm9F%2FGnf5sm4NrgWM%2FnUOcO9USSlyt7Q%3D%3F

 

파라미터로 추가할 경우 UTF-8방식으로 인코딩 된 키 :

S9clkaRNYI3IsIkBXLS%252BIrcxLnFNkUefg46FNTuMTfAeAlBVkLDjjgtm9F%252FGnf5sq4NrgWM%252FnUOcO9USSlyt7Q%253D%253F

 

SERVICE_KEY - > URL 인코딩을 진행합니다 - > 사용

하지만 서비스키를 android studio에서 파라미터로 전달할 경우 

unsafe characters인 %가 포함되어 있어 SERVICE_KEY가

변경되기 때문에 디코딩 작업이 필요합니다.

 

해결 방안

Java / Kotiln

URLDecoder.decode(API_SERVICE_KEY, "UTF-8")코드 한줄을 넣어주시면 정상 작동합니다.