~~ ==================================================================== ~~ Licensed to the Apache Software Foundation (ASF) under one ~~ or more contributor license agreements. See the NOTICE file ~~ distributed with this work for additional information ~~ regarding copyright ownership. The ASF licenses this file ~~ to you under the Apache License, Version 2.0 (the ~~ "License"); you may not use this file except in compliance ~~ with the License. You may obtain a copy of the License at ~~ ~~ http://www.apache.org/licenses/LICENSE-2.0 ~~ ~~ Unless required by applicable law or agreed to in writing, ~~ software distributed under the License is distributed on an ~~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ~~ KIND, either express or implied. See the License for the ~~ specific language governing permissions and limitations ~~ under the License. ~~ ==================================================================== ~~ ~~ This software consists of voluntary contributions made by many ~~ individuals on behalf of the Apache Software Foundation. For more ~~ information on the Apache Software Foundation, please see ~~ . ---------- HttpClient for Android ---------- ---------- ---------- HttpClient for Android This project represents an effort to provide an implementation of Apache HttpClient, which can be deployed on Google Android in parallel to the outdated version shipped with the platform while remaining partially API compatible with Apache HttpClient 4.3. * {Background} Google Android 1.0 was released with a pre-BETA snapshot of Apache HttpClient. To coincide with the first Android release Apache HttpClient 4.0 APIs had to be frozen prematurely, while many of interfaces and internal structures were still not fully worked out. As Apache HttpClient 4.0 was maturing the project was expecting Google to incorporate the latest code improvements into their code tree. Unfortunately it did not happen. Version of Apache HttpClient shipped with Android has effectively become a fork. Eventually Google decided to discontinue further development of their fork while refusing to upgrade to the stock version of Apache HttpClient citing compatibility concerns as a reason for such decision. As a result those Android developers who would like to continue using Apache HttpClient APIs on Android cannot take advantage of newer features, performance improvements and bug fixes. Apache HttpClient 4.3 port for Android is intended to remedy the situation by providing official releases compatible with Google Android. * {Differences with the stock version of Apache HttpClient} [[1]] Compiled against HttpClient 4.0 APIs. [[1]] Commons Logging replaced with Android Logging. [[1]] Base64 implementation from Commons Codec replaced with Android Base64. [[1]] Android default SSLSocketFactory used by for SSL/TLS connections. * {Compatibility notes} [[1]] HttpClient port for Android is compiled against the official Android SDK and is expected to be fully compatible with any code consuming HttpClient services through its interface (HttpClient) rather than the default implementation (DefaultHttpClient). [[1]] Code compiled against stock versions of Apache HttpClient 4.3 is not fully compatible with the HttpClient port for Android. Some of the implementation classes had to be copied (or shaded) with different names in order to avoid conflicts with the older versions of the same classes included in the Android runtime. One can increase compatibility of with the stock version of HttpClient by avoiding 'org.apache.http.**.*HC4' classes. * {Download} HttpClient 4.3 for Android is available from the Maven central and can be added to Gradle builds as the following dependency: ---- dependencies { compile group: 'org.apache.httpcomponents' , name: 'httpclient-android' , version: '4.3.5.1' } ----