안드로이드 android.os.NetworkOnMainThreadException 에러

조회수 500회

BlogsSearchResults results = null;

            try {
                String text = URLEncoder.encode(query, "UTF-8");
                String apiURL = blogSearchURL + text; // json 결과
                apiURL += "&display=" + display + "&start=" + start + "&sort=" + sort;
                URL url = new URL(apiURL);
                HttpURLConnection con = (HttpURLConnection) url.openConnection();
                con.setRequestMethod("GET");
                con.setRequestProperty("X-Naver-Client-Id", clientId);
                con.setRequestProperty("X-Naver-Client-Secret", clientSecret);

                int responseCode = con.getResponseCode();
                BufferedReader br;
                if (responseCode == 200) { // 정상 호출
                    br = new BufferedReader(new InputStreamReader(con.getInputStream(), "UTF-8"));
                } else { // 에러 발생
                    br = new BufferedReader(new InputStreamReader(con.getErrorStream(), "UTF-8"));
                }

                String inputLine;
                StringBuffer response = new StringBuffer();
                while ((inputLine = br.readLine()) != null) {
                    response.append(inputLine);
                }
                br.close();

                Gson gson = new Gson();
                results = gson.fromJson(response.toString(), BlogsSearchResults.class);
            } catch (Exception e) {
                System.out.println(e);
            }

///////////////////// 현제 안드로이드 공부하고있는 학생인데, android.os.NetworkOnMainThreadException 이 에러에 대해 thread를 사용한다고 해야하는데 정확히 이해가 안가서 설명 좀 부탁드립니다 ㅠㅠ

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • 오류 내용 그대로 메인 스레드에서는 네트워크 통신을 구현할 수 없습니다. 이 부분을 AsyncTask 나 다른 스레드 방식을 사용하여 구현해야 합니다. 오류 문구를 구글에서 검색하면 여러 예제들이 나올 겁니다.

    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)