Dev/JAVA

공공데이터 API 요청시 SERVICE ERROR

하서기 2023. 12. 27. 12:39
728x90
반응형

 

공공데이터 API 통신을 하면서도 몇번 실수를 해서 남기는 블로그

 

<OpenAPI_ServiceResponse>
	<cmmMsgHeader>
		<errMsg>SERVICE ERROR</errMsg>
		<returnAuthMsg>SERVICE_KEY_IS_NOT_REGISTERED_ERROR</returnAuthMsg>
		<returnReasonCode>30</returnReasonCode>
	</cmmMsgHeader>
</OpenAPI_ServiceResponse>

 

이슈는 URL 인코딩 문제임돠.

 

728x90

공공데이터에서 일반 인증키(Decoding) 값을 다시 인코딩 해서 보내면 됨요.

URI uri = UriComponentsBuilder.fromUriString(apiUrl)
                    .queryParam("serviceKey", URLEncoder.encode(api_key_dec, "UTF-8")) // 서비스 키
                    .queryParam("pageNo", pageNo) // 추가 파라미터
                    .queryParam("numOfRows",numOfRows) // 추가 파라미터                    
                    .build(true).toUri();

 

서비스키를 encoding 하여 빌드

.build(true) 중요!

이미 인코딩이 되어 있어서 다시 인코딩 안해도 된다고 하는 값!

반응형

 

 

이후 정상적으로 데이터 수신 가능!!

정상처리된 로그

728x90
반응형