마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드스튜디오 API 오류 질문 드립니다.

0 추천

날씨 API를 받아와 파싱 하는 부분에서 잘 되다가 가끔 한번씩 다음과 같은 오류가 발생합니다. 

원인이 무엇일까요..?

2022-04-28 21:40:44.162 21527-21659/com.example.tmap_weather D/tag2: <OpenAPI_ServiceResponse>

    <cmmMsgHeader>

    <errMsg>SERVICE ERROR</errMsg>

    <returnAuthMsg>HTTP_ERROR</returnAuthMsg>

    <returnReasonCode>04</returnReasonCode>

    </cmmMsgHeader>

    </OpenAPI_ServiceResponse>

2022-04-28 21:40:44.166 21527-21659/com.example.tmap_weather W/System.err: org.json.JSONException: Value <OpenAPI_ServiceResponse> of type java.lang.String cannot be converted to JSONObject

2022-04-28 21:40:44.167 21527-21659/com.example.tmap_weather W/System.err:     at org.json.JSON.typeMismatch(JSON.java:112)

2022-04-28 21:40:44.167 21527-21659/com.example.tmap_weather W/System.err:     at org.json.JSONObject.<init>(JSONObject.java:172)

2022-04-28 21:40:44.167 21527-21659/com.example.tmap_weather W/System.err:     at org.json.JSONObject.<init>(JSONObject.java:185)

2022-04-28 21:40:44.167 21527-21659/com.example.tmap_weather W/System.err:     at com.example.tmap_weather.MainActivity.JsonParse(MainActivity.java:581)

 

581번 라인은 다음과 같습니다.

581라인의 코드입니다.

Uit (120 포인트) 님이 2022년 4월 28일 질문

1개의 답변

0 추천
에러 응답에 에러코드가 있으므로, 해당 API를 제공하는 업체의 문서를 찾아보셔야 할 것 같은데요.  04에 해당하는 에러의 의미가 있을 겁니다. 이런 종류의 open api 는 보통 한번, 하루에 호출할 수 있는 API의 호출 갯수인 quoa가 정해져 있는 경우가 많습니다.

참고로 JSON을 일일이 수동으로 parsing하지 마시고 Gson이나 Mosh 같은 라이브러리를 쓰시는게 빠르고 안전하고 쉽습니다.
Retrofit같은 범용적인 라이브러리를 사용하면 한라인의 세팅으로 이부분도 자동으로 처리해줍니다.
spark (226,720 포인트) 님이 2022년 4월 29일 답변
...