본문 바로가기

android tech.

안드로이드 HTTP 통신

안드로이드는 HttpURLConnection 과 Apache HttpClient, 이 두가지 HTTP 클라이언트를 사용한다.

 

진저브레이드 이상의 버전은 HttpURLConnection을 추천한다. HttpClient 에는 버그도 존재한다고 하는데, 자세한 내용은 Android's HTTP Clients 를 참조하기 바란다.

 

 

 

HttpURLConnection 사용예

 

 

 

  URL url = new URL(urlString);
  HttpURLConnection conn = (HttpURLConnection)url.openConnection();
  conn.setReadTimeout(10000 /* milliseconds */);
  conn.setConnectTimeout(15000 /* milliseconds */);
  conn.setRequestMethod("GET");
  conn.setDoInput(true);
  conn.connect();
  

 inputSream = conn.getInputStream();

 

 

 

통신을 위해서 AsyncTask 를 활용하면 좋을 것 같다. 별도의 스레드와 핸들러를 구현하지 않아도, 백그라운드에서 통신을 수행할 수 있도록 해준다. 추상클래스라서 아래와 같이 활용하면 될것이다.

 

 

 

private class DownloadTask extends AsyncTask<String, Void, String>{

 @Override
 protected String doInBackground(String... urls) {
   
       try{

      

      //여기서 HttpURLConnection 사용


       return "success";
 }catch(IOException e){
       return e.printStackTrace();

       }

 }
  
 @Override
 protected void onPostExecute(String result){

 

// 통신완료 후 실행할 사항 여기서 구현


     }  
  
}

 

 

 

통신 시작은

 

new DownloadTask().execute(URL);

 

 

 

 

 

[참조] http://developer.android.com/training/basics/network-ops/connecting.html

 

 

 

 

 

 

 

'android tech.' 카테고리의 다른 글

string 검색  (0) 2014.04.29
어플 이름 최대 글자 수  (0) 2014.03.11
YUV  (0) 2014.03.04
View 사이즈 측정을 위해 ViewTreeObserver 사용  (0) 2014.03.03
안드로이드 네트워크 연결 상태 체크  (0) 2013.07.23