[졸업프로젝트]공공데이터 포털 service key is not registered error 해결 방법

shane·2021년 4월 22일
3

Error 발생

졸업프로젝트를 진행하면서 공공데이터 포털의 API를 사용할 일이 생겼다. API를 사용하기 위해서는 Service Key가 필요했기에 발급을 받고, 브라우저를 통해 제대로 작동하는지 체크를 해보니 잘 작동하는 것을 확인했다.

현재 개발 중인 프로젝트의 Spring boot로 위에서 언급한 API를 읽고 Json파일을 받기 위해, RestTemplate를 사용했다.

그런데 분명히 브라우저에서는 멀쩡히 작동하던 것이 Spring boot에서는 작동하지 않고 service key is not registered error만 계속해서 보여주고 있었다..

혹시나하고 API document파일을 봤더니, 에러코드에 대한 정리가 되어있었다..!(야호!)

등록되어 되어있지 않다는 것이었다. 분명히 브라우저를 통해서 발급받은 Service Key를 사용했을 때는 멀쩡히 되던 것이 이런 문제를 일으키는 것이 너무 당황스러웠다.
결국 Google로 달려가서 검색을 해보았다.

매우 많은 검색 결과가 나오는 것을 알 수 있었다. 가장 많이 보인 것은 UTF-8로의 encoding과 관련한 내용이 많았기에 해당 방법을 해보려고 했으나..

어림도 없다. 작동 안된다.

다시 여러 번 찾아보니 결국 방법을 찾게 되었다.

Error 해결

바로, URI 클래스를 사용하는 것이다!
사용하기 원하는 API, Service Key를 다 포함한 url 문자열을 URI 클래스에 집어넣어, RestTemplate에 이용하는 것이다.

URI uri = new URI(url);
String jsonString = restTemplate.getForObject(uri, String.class);

자바의 URI 클래스를 사용하면, URL전송을 할 때, 문자열 그대로 날아가는 것이 아닌, 한번 인코딩을 해서 보내준다고 한다. 그런데 이전에는 내가 URI에 담지않고 보내니, 인코딩이 되지 않아 Service Key를 인식하지 못한 것이었다.

profile
개발 관련 소통을 좋아하는 백엔드 개발자입니다.

0개의 댓글