본문 바로가기
프로그래밍 놀이터/안드로이드, Java

[android] HttpClient vs. HttpURLConnection

by 돼지왕 왕돼지 2013. 10. 11.
반응형


 안드로이드, HttpClient vs. HttpURLConnection

 

[android] HttpClient vs. HttpURLConnection


HttpClient


HttpClient 는 아파치 라이브러리를 사용. DefaultHttpClient 와 AndroidHttpClient 가 제공된다. 방대한 API 가 지원하고, 버그가 별로 없이 안정적으로 동작한다. 하지만, 너무 방대한 API 를 제공하여 안드로이드 개발팀은 이 클래스들을 더 이상 지원하지 않는다.




HttpURLConnection


HttpURLConnection 은 가벼운 version 의 HttpClient 라 볼 수 있겠다. 핵심적인 API 들만을 가지고 있다. 그러나 프로요 이전 버전의 경우 HttpURLConnection 클래스에 이상한 버그들이 있었다. InputStream 을 열어둔 상태에서 close 를 호출하면 커넥션 풀이 오작동 하는 일이 발생하는 등.. ( 개발자들이 커넥션 폴링 기능을 비활성시켜서 해결했다 함 )


HttpURLConnection 은 압축된 Http Response 를 수신하는 기능도 추가되었다. http 요청시 자동으로 헤더에 Accept-Encoding: gzip 이 추가되며, 개발자가 인코딩, 디코딩 등에 신경쓰지 않고 내용물을 잘 받을 수 있도록 설계되었다. ( getConentLength() 함수는 압축된 형태의 length 를 이용하기 때문에 주의해야 한다. 혹은 Accept-Encoding="identity" 값을 넣던지 해서 압축방식을 사용하지 않도록 한다. ) 


HttpURLConnection 은 이외에도, Response Cache 기능이 추가되었으며, Https 에 관한 기능 개선도 이루어졌다.







결론


진저브레드 이상에서는 HttpURLConnection 이 훨씬 좋다. 안드로이드 팀의 서포트도 게속된다.







반응형

댓글