json 파싱에 setLenient(true)를 추가 한 뒤 발생한 500 에러
java.lang.IllegalStateException: Not a JSON Object:"<?xml"
서칭 해봤는데 딱히 명확한 이유를 찾을 수는 없었다
그냥 에러를 보기에는 json을 찾을 수 없다는 에러인가? 생각이 들었고
원래 ApiParseController에
urlBuilder.append("&" + URLEncoder.encode("_type", "UTF-8") + "=" + URLEncoder.encode("json", "UTF-8"));
이 코드로 type을 json으로 받아왔는데 에러가 나기 전까지 console에 뜨는 api는 xml로 넘어왔던게 생각이 나서 다른 json 설정 코드를 찾아서 수정해봤다
urlBuilder.append("&type=json"); /*결과 json 포맷*/
수정한 코드로 실행시켜보니
Response code: 200
{"response":{"header":{"resultCode":"0","resultMsg":"NORMAL_SERVICE"},
"body":{"items":{"item":[
{"lot":127.956485,"frtrlId":"0000000002","ctpvNm":"강원특별자치도","crtrDt":"2024-01-25 05:59:36","aslAltide":1051.0,"addrNm":"강원도 춘천시 북산면ㆍ동면, 홍천군 두촌면ㆍ화촌면","frtrlNm":"가리산","mtnCd":"421100101","lat":37.871353},
{"lot":128.56275,"frtrlId":"0000000003","ctpvNm":"강원특별자치도","crtrDt":"2024-01-25 05:59:36","aslAltide":1561.0,"addrNm":"강원도 정선군 정선읍 회동리ㆍ북평면, 평창군 진부면","frtrlNm":"가리왕산","mtnCd":"427700101","lat":37.460995},
{"lot":128.122518,"frtrlId":"0000000001","ctpvNm":"경상북도","crtrDt":"2024-01-25 05:59:36","aslAltide":1430.0,"addrNm":"경상남도 합천군ㆍ거창군, 경상북도 성주군","frtrlNm":"가야산","mtnCd":"478400101","lat":35.822563},
{"lot":129.003523,"frtrlId":"0000000004","ctpvNm":"울산광역시","crtrDt":"2024-01-25 05:59:36","aslAltide":1240.0,"addrNm":"울산광역시 울주군, 경상북도 청도군, 경상남도 밀양시","frtrlNm":"가지산","mtnCd":"317100101","lat":35.619875},
{"lot":126.969989,"frtrlId":"0000000005","ctpvNm":"경기도","crtrDt":"2024-01-25 05:59:36","aslAltide":675.0,"addrNm":"경기도 파주시 적성면, 양주시 남면, 연천군 전곡읍","frtrlNm":"감악산","mtnCd":"414800101","lat":37.941082},
{"lot":127.034392,"frtrlId":"0000000006","ctpvNm":"전라북도","crtrDt":"2024-01-25 05:59:36","aslAltide":584.0,"addrNm":"전라북도 순창군 팔덕면, 전라남도 담양군 용면","frtrlNm":"강천산","mtnCd":"457700101","lat":35.388214},
{"lot":127.210292,"frtrlId":"0000000007","ctpvNm":"충청남도","crtrDt":"2024-01-25 05:59:36","aslAltide":845.0,"addrNm":"대전광역시, 충청남도 공주시 계룡면, 논산시 상월면, 계룡시 신도안면","frtrlNm":"계룡산","mtnCd":"441500301","lat":36.361424},
{"lot":128.46543,"frtrlId":"0000000008","ctpvNm":"강원특별자치도","crtrDt":"2024-01-25 05:59:36","aslAltide":1577.0,"addrNm":"강원도 홍천군 내면, 평창군 용편면ㆍ진부면","frtrlNm":"계방산","mtnCd":"427206801","lat":37.728268},
{"lot":128.0105456,"frtrlId":"0000000009","ctpvNm":"강원특별자치도","crtrDt":"2024-01-25 05:59:36","aslAltide":887.0,"addrNm":"강원도 홍천군 동면, 화촌면","frtrlNm":"공작산","mtnCd":"427200401","lat":37.71593923},
{"lot":126.964223,"frtrlId":"0000000010","ctpvNm":"서울특별시","crtrDt":"2024-01-25 05:59:36","aslAltide":629.0,"addrNm":"서울특별시 관악구, 경기도 안양시, 과천시","frtrlNm":"관악산","mtnCd":"116200201","lat":37.445044}
]},"numOfRows":10,"pageNo":1,"totalCount":100}}}
console에 json이 잘 찍혔다..!
이제 이 데이터들을 어떻게 사용하느냐 인데..
api 속도가 느리지 않으면 그때그때 불러서 사용해도 되고
느린 편이라면 한번 조회한 결과에 대해서 db에 저장한 뒤에 사용해도 된다고 한다
그 속도를 어떻게 알고 결정을 하는것인지?
api 속도를 측정하는 방법을 찾아봐야겠다