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 |