Apache http 클라이언트 또는 URLConnection
이 질문에 이미 답이 있습니다.
Android 앱에서 웹 페이지를 다운로드해야 하는데 Android apache http 클라이언트를 사용할지 아니면 Java의 URLConnection을 사용할지 결정하는 데 어려움을 겪고 있습니다.
이견있는 사람?
대부분의 경우 그것이 HttpClient
갈 길이 라고 말하고 싶습니다 . 그러나 내가 URLConnection
. 여기 및 여기 에서 예외 사례의 예
편집
비슷한 질문이 이전에 요청되었습니다: httpclient 대 httpurlconnection .
표준 Java 라이브러리를 기반으로 구축 되었기 때문에 속도가 다소 더 빠르다고
가정합니다
. 그러나
나는 찾을 것이다 HttpUrlConnection
HttpClient
HttpClient
작성하기가 훨씬 더 빠르고 쉽게 코드 및 유지 관리. 아래 의견에 따르면 의 핵심 요소는 HttpClient
성능이 최적화되었습니다.
성능이 주요 관심사인 경우 가장 좋은 방법은 각 방법을 사용하는 두 개의 클라이언트를 작성한 다음 둘 다 벤치마킹하는 것입니다. 이렇게 하시면 결과를 알려주세요.
Google은 Gingerbread( http://android-developers.blogspot.com/2011/09/androids-http-clients.html ) 이후로 Apache HTTP 클라이언트 사용을 조용히 중단했습니다 . 그리고 더 이상 사용되지 않는 주석으로 표시하지 않았지만 새 응용 프로그램에 HttpURLConnection을 다음과 같이 사용할 것을 제안합니다 it is where we [Google] will be spending our energy going forward
.
개인적으로 나는 그 결정이 마음에 들지 않으며 HttpClient 4.1+가 더 빠르고 버그가 적으며 정기적으로 업데이트되기 때문에 HttpClient 4.1+를 고수하고 싶습니다. 시스템 라이브러리를 버전 4.1로 업그레이드할 수는 없지만 Android 프로젝트에 HttpClient jar를 포함할 수 있습니다(추가 이점으로 Google 버그 수정 및 공급업체 업데이트에 의존하지 않아도 됨). 그러나 한 가지 함정이 있습니다. 내장 라이브러리와의 충돌 가능성을 방지하려면 JarJar 도구를 사용하여 httpclient 패키지의 이름을 바꿔야 합니다. 누군가 이미 이 작업을 수행한 것으로 나타났습니다(재패키지된 jar 및 Android 라이브러리 프로젝트를 다운로드할 수 있음).
http://code.google.com/p/httpclientandroidlib/
이것은 Android용 HttpClient 4.1의 재패키지입니다. Android SDK의 HttpClient 버전은 4.0beta2입니다. 4.0베타 이후로 HttpClient에 대한 몇 가지 업데이트와 인증 캐싱과 같은 몇 가지 꼭 필요한 버그 수정이 있었습니다.
Google은 Java 표준 HttpURLConnection을 위해 HttpClient를 더 이상 사용하지 않기 때문에 Apache HttpClient의 재고 릴리스를 Android 라이브러리로 변환하는 스크립트를 만들었습니다.
주식 HttpClient에 대한 변경 사항
- 모든 패키지 org.apache.http를 ch.boye.httpclientandroidlib로 이름 변경
- org.ietf.*(SPNEGO 인증)에 종속된 모든 클래스를 삭제했습니다.
- org.apache.commons.codec.binary.Base64를 android.util.Base64로 대체
- org.apache.commons.logging을 대체하기 위해 새 클래스 HttpClientAndroidLog를 만들었습니다.
Gingerbread 이상에서는 HttpURLConnection을 사용하는 것이 좋습니다. Apache HttpClient가 더 이상 사용되지 않는 것으로 간주합니다. (또한 Android는 다른 주석에서 언급한 HttpClient 4.1을 사용하지 않습니다.)
Apache HttpClient가 더 빠른 경우 여기에 버그로 보고하세요. http://code.google.com/p/android/issues/list
참조URL : https://stackoverflow.com/questions/4799151/apache-http-client-or-urlconnection
'IT이야기' 카테고리의 다른 글
"타입 펀닝 포인터를 역참조하면 엄격한 앨리어싱 규칙이 깨집니다" 경고 (0) | 2021.09.21 |
---|---|
메모장 ++ 파일 필터에서 찾기 EXCLUDE (0) | 2021.09.21 |
파일이 Python에서 열려 있는지 확인 (0) | 2021.09.21 |
추상은 아니지만 재정의해야 하는 메서드를 만드는 방법 (0) | 2021.09.18 |
JavaScript 객체를 JSON 문자열로 직렬화 (0) | 2021.09.18 |