본문 바로가기

Dev/JAVA

공공데이터 API 요청시 SERVICE ERROR

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
반응형

'Dev > JAVA' 카테고리의 다른 글

[JAVA] URL 파라메터 분리(Feat.get)  (0) 2021.02.05
java-jython 오류 - No module named site  (2) 2020.08.26
JAVA 접근 제한자  (0) 2020.08.02
JAVA - 키보드 입력  (0) 2020.07.26
JAVA-String 숫자여부 Check  (0) 2020.07.24