안드로이드/Android HttpURLConnection클래스로 POST 요청하기
// 요청할 파라미터의 정보를 입력한다.
String body = "id=asdf&pass=asdf";
// URL클래스의 생성자로 주소를 넘겨준다.
URL u = new URL( 주소 );
// 해당 주소의 페이지로 접속을 하고, 단일 HTTP 접속을 하기위해 캐스트한다.
HttpURLConnection huc = (HttpURLConnection) u.openConnection();
// POST방식으로 요청한다.( 기본값은 GET )
huc.setRequestMethod("POST");
// InputStream으로 서버로 부터 응답 헤더와 메시지를 읽어들이겠다는 옵션을 정의한다.
huc.setDoInput(true);
// OutputStream으로 POST 데이터를 넘겨주겠다는 옵션을 정의한다.
huc.setDoOutput(true);
// 요청 헤더를 정의한다.( 원래 Content-Length값을 넘겨주어야하는데 넘겨주지 않아도 되는것이 이상하다. )
huc.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
// 새로운 OutputStream에 요청할 OutputStream을 넣는다.
OutputStream os = huc.getOutputStream();
// 그리고 write메소드로 메시지로 작성된 파라미터정보를 바이트단위로 "EUC-KR"로 인코딩해서 요청한다.
// 여기서 중요한 점은 "UTF-8"로 해도 되는데 한글일 경우는 "EUC-KR"로 인코딩해야만 한글이 제대로 전달된다.
os.write( body.getBytes("euc-kr") );
// 그리고 스트림의 버퍼를 비워준다.
os.flush();
// 스트림을 닫는다.
os.close();
// 응답받은 메시지의 길이만큼 버퍼를 생성하여 읽어들이고, "EUC-KR"로 디코딩해서 읽어들인다.
BufferedReader br = new BufferedReader( new OutputStreamReader( huc.getInputStream(), "EUC-KR" ), huc.getContentLength() );
String buf;
// 표준출력으로 한 라인씩 출력
while( ( buf = br.readLine() ) != null ) {
System.out.println( buf );
}
// 스트림을 닫는다.
br.close();
출처 : http://ibabo.tistory.com/266
참고 사이트 :
클래스 java.io.InputStream 한글 API
클래스 java.io.OutputStream 한글 API
'Android > NetWork' 카테고리의 다른 글
안드로이드/Android String.getBytes() 사용법 (0) | 2012.06.26 |
---|---|
안드로이드/Android Encoding Decoding 사용법 ~! (Base64, URLEncoder, URLDecoder) (2) | 2012.06.26 |
안드로이드/Android HttpURLConnection Request Header 값 세팅 하기 (0) | 2012.06.21 |
안드로이드/Android HttpURLConnection 에서 GET / POST 방식 사용상의 주의 (0) | 2012.06.21 |
안드로이드/Android getResponseCode() 에러 날 경우 에러 메시지 보는방법 (0) | 2012.06.20 |