2015년 3월 2일 월요일

Android Web 요청 및 응답 받기 ( Web Request and Read) & AsyncTask

Android에서 웹 요청을 하는 코드를 넣을 때에는

AsyncTask 를 사용하여 그 안에서 웹 요청을 하고

끝나고 나면 onPostExecute 함수 안에서 UI 수정등을 수행하도록 한다.

예제 코드 (Example)

private void sendMsgBackground() {
 new AsyncTask() {
  @Override
  protected String doInBackground(Void... params) {
   String msg = "";
   try {
    msg = sendMsg();
   }
   catch (Exception e) {
   }

   return msg;
  }

  @Override
  protected void onPostExecute(String msg) {
  }
 }.execute(null, null, null);
}

private void sendMsg() {
 HttpURLConnection urlConnection = null;

 try {
  URL url = new URL("http://mywebsite");
  urlConnection = (HttpURLConnection) url.openConnection();
  urlConnection.setRequestMethod("POST");
  urlConnection.setDoInput(true);
  urlConnection.setDoOutput(true);

  String urlParameters = "param1=paramVal1";
  urlParameters = urlParameters +"&¶m2=paramVal2";

  DataOutputStream wr = new DataOutputStream(urlConnection.getOutputStream());
  BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(wr, "UTF-8"));
  writer.write(urlParameters);
  writer.close();
  wr.close();

  int responseCode = urlConnection.getResponseCode();

  BufferedReader in = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));

  String inputLine;
  StringBuffer response = new StringBuffer();

  while ((inputLine = in.readLine()) != null) {
   response.append(inputLine);
  }
  in.close();
 }
 catch (Exception e) {
  //TODO: exception handling
 }
 finally {
  urlConnection.disconnect();
 }
}
  

댓글 없음:

댓글 쓰기