블로그 이미지
JoyfulLife

공지사항

최근에 받은 트랙백

글 보관함

calendar

    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    

'HTTP'에 해당되는 글 2

  1. 2010.10.28 How to get File size using HTTP protocol
  2. 2010.07.22 http 통신 (2)
물론 자바이다.

URL url = null;
URLConnection urlConnection;
        try {
            urlConnection = url.openConnection();
            urlConnection.connect();
            List urlvalues = urlConnection.getHeaderFields().get("content-length");
            if (urlvalues != null && !urlvalues.isEmpty()) {
                String sLength = (String) urlvalues.get(0);
                Log.i("Test","slength="+sLength);
            }

이런 식으로 하면 된다.
urlConnection 의 헤더를 살펴보면 된다. 처음에는 content-Length 로 해서 못 받아왔는데.. 지금은 디버그로 한방에 찾았다.

실력은 예전에 비해 늘어난거 같다. 모 http 에 대해서 공부를 해서 그런거 같다.

신고

'안드로이드어플리케이션' 카테고리의 다른 글

How to get File size using HTTP protocol  (0) 2010.10.28
Korean Bible Viewer  (28) 2010.06.23

http 통신

2010.07.22 21:26 | Posted by JoyfulLife
2개의 방법이 있다.
첫번째는 java.net 패키지를 이용하는 것이다.

두번째는 org.apache 패키지를 이용하는 것이다.

2개가 비슷해서 처음에는 좀 헷갈린다.

그래서 차이점에 대해서 오늘 배운 것을 정리해보겠다.

1. java.net 사용법
URL url = new URL(addr);
            HttpURLConnection conn = (HttpURLConnection)url.openConnection();
            if (conn != null) {
                conn.setConnectTimeout(10000);
                conn.setUseCaches(false);
                if (conn.getResponseCode() == HttpURLConnection.HTTP_OK) {
                    BufferedReader br = new BufferedReader(
                            new InputStreamReader(conn.getInputStream()));
                    for (;;) {
                        String line = br.readLine();
                        if (line == null) break;
                        html.append(line + '\n');
                    }
                    br.close();
                }
                conn.disconnect();
            }

2.번째 org.apache 사용법
HttpGet httpget = new HttpGet(addr);
        DefaultHttpClient client = new DefaultHttpClient();
        StringBuilder html = new StringBuilder();
        try {
            HttpResponse response = client.execute(httpget);
            BufferedReader br = new BufferedReader(new
                    InputStreamReader(response.getEntity().getContent()));
            for (;;) {
                String line = br.readLine();
                if (line == null) break;
                html.append(line + '\n');
            }
            br.close();
        }


이 정도이다.

좀 다른 점은 thread를 사용할 때 apache 에서는 ResponseHanlder 를 등록할 수 있다는 것이다. html 소스를 모두 받고 나면 실행하는 핸들러이다.
public void run() {
            HttpGet get = new HttpGet(mAddr);
            DefaultHttpClient client = new DefaultHttpClient();
            try {
                client.execute(get,mResHandler);
            }
            catch (Exception e) {;}
        }

ResponseHandler<String> mResHandler = new ResponseHandler<String>() {
        public String handleResponse(HttpResponse response) {
            StringBuilder html = new StringBuilder();
            try {
                BufferedReader br = new BufferedReader(new
                        InputStreamReader(response.getEntity().getContent()));
                for (;;) {
                    String line = br.readLine();
                    if (line == null) break;
                    html.append(line + '\n');
                }
                br.close();

                Message message = mAfterDown.obtainMessage();
                Bundle bundle = new Bundle();
                bundle.putString("result", html.toString());
                message.setData(bundle);
                mAfterDown.sendMessage(message);
            } catch (Exception e) {;}
            return html.toString();
        }
    };

이 정도이다. client.execute(get,mResHandler);를 실행한후다 끝나면  handleResponse()를 실행한다.
 좀 이해하기 어려운 것은 response.getEntity().getContent() 부분이다.
도대체 getEntity()가 무엇인지 모르겠다.
신고

'안드로이드' 카테고리의 다른 글

코드로 안드로이드 방향 설정  (0) 2010.07.24
OnTouch, Action_up  (1) 2010.07.24
http 통신  (2) 2010.07.22
단말기 화면 을 실시간으로 보자  (0) 2010.07.20
Bitmap, Recycle()  (1) 2010.07.11
마켓 QR 코드 만들기  (1) 2010.07.08
이전 1 다음

티스토리 툴바