[안드로이드] - JSP에서 안드로이드 JSON 데이터 받아오기 (3)
○ JSP에서 안드로이드 JSON 데이터 받아오기 (3) |
JSP 파일은 이전 게시물에 다 적어놓았다 // 안드로이드 MainActivity.java public class MainActivity extends AppCompatActivity { TextView textView; // 받아온 데이터 출력위한 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); textView = (TextView)findViewById(R.id.textView); // 나의 ip(localhost, 127.0.0.1 안댐)/JSP프로젝트명/연결할jsp파일명 // 10.0.2.2 가 로컬에서 안드로이드와 jsp 통신이 가능하게 해준다 String url = "http://10.0.2.2:8080/testcrawl/index.jsp"; NetworkTask networkTask = new NetworkTask(url, null); networkTask.execute(); } public class NetworkTask extends AsyncTask<Void, Void, String> { private String url; private ContentValues values; public NetworkTask(String url, ContentValues values) { this.url = url; this.values = values; } @Override protected String doInBackground(Void... params) { String result; // 요청 결과를 저장할 변수. RequestHttpURLConnection requestHttpURLConnection = new RequestHttpURLConnection(); // 해당 URL로 부터 결과물을 얻어온다. result = requestHttpURLConnection.request(url, values); return result; } @Override protected void onPostExecute(String s) { super.onPostExecute(s); // doInBackground()로 부터 리턴된 값이 onPostExecute()의 매개변수로 넘어오므로 s를 출력한다. textView.setText(s); } } public class RequestHttpURLConnection { public String request(String _url, ContentValues _params) { // HttpURLConnection 참조 변수. HttpURLConnection urlConn = null; // URL 뒤에 붙여서 보낼 파라미터. StringBuffer sbParams = new StringBuffer(); /** * 1. StringBuffer에 파라미터 연결 * */ // 보낼 데이터가 없으면 파라미터를 비운다. if (_params == null) // sbParams.append(""); // sbParams.append("miseID=" + miseID); //sbParams.append("&misePW=" + misePW); //sbParams.append("miseID=test001&misePW=test001&miseNAME=테스트001"); //sbParams.append("memberID=test123&password=test123&name=꼬북이&email=test123@naver.com"); // 보낼 데이터가 있으면 파라미터를 채운다. /** * 2. HttpURLConnection을 통해 web의 데이터를 가져온다. * */ try { URL url = new URL(_url); urlConn = (HttpURLConnection) url.openConnection(); // [2-1]. urlConn 설정. urlConn.setRequestMethod("POST"); // URL 요청에 대한 메소드 설정 : POST. urlConn.setRequestProperty("Accept-Charset", "UTF-8"); // Accept-Charset 설정. urlConn.setRequestProperty("Context_Type", "application/x-www-form-urlencoded;cahrset=UTF-8"); // [2-2]. parameter 전달 및 데이터 읽어오기. String strParams = sbParams.toString(); //sbParams에 정리한 파라미터들을 스트링으로 저장. 예)id=id1&pw=123; OutputStream os = urlConn.getOutputStream(); os.write(strParams.getBytes("UTF-8")); // 출력 스트림에 출력. os.flush(); // 출력 스트림을 플러시(비운다)하고 버퍼링 된 모든 출력 바이트를 강제 실행. os.close(); // 출력 스트림을 닫고 모든 시스템 자원을 해제. // [2-3]. 연결 요청 확인. // 실패 시 null을 리턴하고 메서드를 종료. if (urlConn.getResponseCode() != HttpURLConnection.HTTP_OK) return null; // [2-4]. 읽어온 결과물 리턴. // 요청한 URL의 출력물을 BufferedReader로 받는다. BufferedReader reader = new BufferedReader(new InputStreamReader(urlConn.getInputStream(), "UTF-8")); // 출력물의 라인과 그 합에 대한 변수. String line; String page = ""; // 라인을 받아와 합친다. // 버퍼의 웹문서 소스를 줄 단위로 읽어(line), page에 저장함 while ((line = reader.readLine()) != null) { page += line; } try { // JSP에서 보낸 JSON 받아오자 JSONObject = siteDataMain JSONObject json = new JSONObject(page); JSONArray jArr = json.getJSONArray("siteDataMain"); // JSON이 가진 크기만큼 데이터를 받아옴 for (int i = 0; i < jArr.length(); i++) { json = jArr.getJSONObject(i); System.out.println(i + "번째 데이터 : " + json.getString("siteTitle")); System.out.println(i + "번째 데이터 : " + json.getString("siteLink")); System.out.println(i + "번째 데이터 : " + json.getString("siteImage")); System.out.println(i + "번째 데이터 : " + json.getString("siteText")); System.out.println("\n"); } // 가져온 데이터들 확인 // textView.setText(가공 데이터); } catch(Exception e){ e.printStackTrace();; } } catch (MalformedURLException e) { // for URL. e.printStackTrace(); } catch (IOException e) { // for openConnection(). e.printStackTrace(); } finally { if (urlConn != null) urlConn.disconnect(); } return null; } } } |
'JSP 안드로이드' 카테고리의 다른 글
[안드로이드] - 받아온 JSON 데이터 RecyclerView에 보여주기 (4) (0) | 2018.05.24 |
---|---|
[JSP] - jsoup 크롤링 데이터 JSON화 시키기 (2) (0) | 2018.05.24 |
[JSP] - jsoup 이용한 웹 크롤링하기 (1) (0) | 2018.05.24 |