- 아파치 라이브러리 사용.
- 방대한 API 제공.
- 방대한 API를 제공함으로써 안드로이드 개발팀에서 더 이상 지원하지 않는다고 함.
HttpURLConnection
- 가벼운 버전의 HttpClient라고 보면 됨.
- 핵심적인 API만을 가지고 있음.
- 프로요 이전 버전의 경우 버그들이 많았음.
- 진저브레드 이상에서는 HttpURLConnection을 사용하는 것을 추천함.
HttpURLConnection 예제(POST)
===============================================================================
URL url = new URL(urlStr);
HttpURLConnection http = (HttpURLConnection)url.openConnection();
http.setDefaultUseCaches(false);
http.setDoInput(true); // 서버에서 읽기모드 지정.
http.setDoOutput(true); // 서버에서 쓰기모드 지정.
http.setRequestMethod("POST"); // 전송 방식은 POST
// 서버에게 웹에서 <FORM>으로 값이 넘어온 것과 같은 방식으로 처리하는걸 알려줌.
http.setRequestProperty("content-type", "application/x-www-form-urlencoded");
// 서버로 값 전송
StringBuffer buffer = new StringBuffer();
buffer.append("id").append("=").append(myId).append("&"); // php 변수에 값 대입
buffer.append("pword").append("=").append(myPWord).append("&"); // php 변수 앞에 '$' 붙이지 않음
buffer.append("title").append("=").append(myTitle).append("&"); // 변수 구분은 "&"사용
buffer.append("subject").append("=").append(mySubject);
OutputStreamWriter outStream = new OutputStreamWriter(http.getOutputStream(), "euc-kr");
outStream.write(buffer.toString());
outStream.flush();
// PrintWriter writer = new PrintWriter(outStream);
// writer.write(buffer.toString());
// writer.flush();
// 서버에서 전송받기
InputStreamReader tmp = new InputStreamReader(http.getInputStream(), "euc-kr");
BufferedReader reader = new BufferedReader(tmp);
StringBuilder builder = new StringBuilder();
String str;
while( (str = reader.readLine()) != null){
builder.append(str+"\n");
}
myResult = builder.toString();
===============================================================================
HttpClient 예제(POST)
===============================================================================
HttpClient client = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(urlStr);
List<NameValuePair> fields = new ArrayList<NameValuePair>();
fields.add(new BasicNameValuePair("id", myId));
fields.add(new BasicNameValuePair("pword", myPWord));
fields.add(new BasicNameValuePair("title", myTitle));
fields.add(new BasicNameValuePair("subject", mySubject));
httpPost.setEntity(new UrlEncodedFormEntity(fields, "euc-kr"));
HttpResponse response = client.execute(httpPost);
if(response.getStatusLine().getStatusCode() == HttpStatus.SC_OK){
BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent(), "euc-kr"));
String line = null;
while(true){
line = reader.readLine();
if(line == null)
break;
output.append(line + "\n");
}
myResult = output.toString();
reader.close();
}
===============================================================================
'프로그래밍 정리 > 안드로이드' 카테고리의 다른 글
[Android - 안드로이드] HttpClient timeout 등 지정 (0) | 2014.10.05 |
---|---|
[Android - 안드로이드] HttpClient 서버에서 파일 보내기/받기 (0) | 2014.10.05 |
[Android - 안드로이드] 안드로이드 LayoutInflater 개념 - attachToRoot (0) | 2014.01.18 |
[Android - 안드로이드] 액티비티 인텐트 종류 (0) | 2014.01.14 |
안드로이드 단말기 번호 가져오기(자기번호, 통신사) (0) | 2014.01.06 |