API를 사용해서 프로젝트에 관련 데이터를 적용하는 작업을 하고있었다.
근데 국민행동요령 API를 받아오는도중 며칠동안 계속 SERVICE KEY IS NOT REGISTERED ERROR해당 오류가 발생해 공공데이터포털에 문의하였다.
그랬더니 아래와같은 답변이 왔다.
내가 발급받은 API와 관련된 행정안전부에서 어떤 오류가 있어서 제대로 키값이 등록이 안되어있는것같았다.
그래서 임시인증키를 남겨주었다.
그래서 임시인증키를 사용해서 API를 불러와봤지만, 또 SERVICE KEY IS NOT REGISTERED ERROR가 발생하는것이였다.
저 키 자체도 문제가 없었고 나도 서비스키를 올바르게 작성했는데 또 이런 문제가 생겼다.
알고보니깐 서비스키가 qA%3D%3D이런식으로 나와야지 정상인데, qA%253D%253D 이런식으로 나오는것이였다.
이미 인코딩이 되어있는 서비스키였는데, 앱을 실행하면서 자동으로 utf-8로 또 인코딩이돼서 발생하는 오류였다.
따라서 serviceKey를 보낼때 encoded = true르 추가해서 자동으로 인코딩 되는것을 막도록 수정해서 오류를 해결했다!!
interface NaturalDisasterService {
@GET(NATURALDISASTER_API)
suspend fun getNaturalDisaster(
@Query("serviceKey", encoded = true) serviceKey : String = NATURALDISASTER_SERVICE_KEY,
@Query("safety_cate") safetyCate : String,
) : NaturalDisasterResponse
}