안드로이드는 apache의 httpclient4.0 라이브러리가 포함되어있다.
그러나 이건 한참 된 구버전.
최신버전의 httpclient(현재 4.2.3)을 사용하기 위해서는 단순히 라이브러리만 받아서 넣는다고 되지않는다.
그 이유는 android.jar안에있는 httpclient와 충돌하기 때문.
그대로했다간 class를 찾을수 없다는 에러만 실컷본다.
고로 패키지이름을 변경하여 충돌을 피해야한다.
http://hc.apache.org/downloads.cgi 에서 일단 최신버전의 httpclient binary를 받는다.
http://code.google.com/p/jarjar/ 에서 jarjar최신버전을 받는다.
jarjar의 압축을 풀고 src폴더를 만들고 httpclient의 lib안에있는 jar파일들을 모아놓는다.
build.xml를 편집
<?xml version="1.0"?>
<project default="jar" name="NameSpaceRepackage" basedir=".">
<target name="jar">
<taskdef name="jarjar" classname="com.tonicsystems.jarjar.JarJarTask" classpath="jarjar-1.4.jar"/>
<jarjar jarfile="dist/apache-httpclient.jar">
<zipgroupfileset dir="src" includes="*.jar" />
<rule pattern="org.apache.http.**" result="org.apache2.http.@1"/>
</jarjar>
</target>
</project>
와 같이 편집한다.
위의 예제에서는 org.apache.http를 org.apache2.http로 변경하여 충돌을 피한다.
쉘에서 ant명령어를 이용하여 build하면 dist안에 apache-httpcilent.jar파일로 7개의 jar파일들이 패키지변경과 더불어 하나로 합쳐진다.
물론 library를 import한 후 import package를 할때 org.apache가 아니라 org.apache2등으로 변경된 패키지를 선택해야 한다.
이게 귀찮은 사람들을 위해 첨부파일을 포함한다.
apache-httpclient.jar