URLConnection或HTTPClient:提供更好的function和更高的效率?

我期待为Android应用程序创build一个login表单。 我想用post方法将信息发送到PHP文件处理的服务器端; 进而validation参数并发送回应。

我已经通过使用HttpClient和URLConnection的实现来看,他们是非常相似的。哪一个更高效的使用android应用程序内?

感谢Fabii

我相信在这种情况下,取决于你觉得更自然的任何API。 通常,HTTPClient在服务器端应用程序(或可能是批处理应用程序)内部效率更高,因为它允许指定一个multithreading连接池,最大总连接数和每个主机连接数的最大值(这确保了并发连接相同的主机不会被序列化(与HttpUrlConnection的问题))。 但在Android应用程序中,您可能一次只能build立一个连接,所以这并不重要。

我已经做了一些研究,我一直在Android中使用Apache HttpClient很长一段时间。 这对我来说是一个很自然的select,并且认为它会随着时间的推移而得到改善。

另一方面,当我开发旧版BlackBerryOS时,我一直在使用HttpUrlConnection。

我清楚地看到,在networking环境下,BB的性能比Android好。

HttpClient是一个function齐全但有问题的类,提供了一套庞大的API /方法。 它可以用来为Android创build一个function齐全的WebBrowser。 但是它在旧版本的Android上有一些问题,而且它没有被Google积极地贡献。

而HttpUrlConnection有一个非常有用的API,这对于开发networking客户端应用程序来说是非常有用的。 它改进了响应caching,改进了Android 2.3及更高版本的压缩技术。 当您构buildnetworking客户端应用程序时,它将重新开始。

“Apache HTTPClient在Eclair和Froyo上的bug更less,这是这些版本的最佳select。

对于姜饼和更好, HttpURLConnection是最好的select。 其简单的API和小尺寸使其非常适合Android。 透明压缩和响应caching减lessnetworking使用,提高速度并节省电池。 新的应用程序应该使用HttpURLConnection; 这是谷歌将继续向前发展的地方。“

请参阅详细信息

http://android-developers.blogspot.in/2011/09/androids-http-clients.html

根据Android团队,你应该使用姜饼HttpURLConnection和更好,因为这是他们将把新的发展努力。

http://android-developers.blogspot.de/2011/09/androids-http-clients.html

编辑:这些天,我发现了Square的okhttp,包括SPDY支持和自动重试: https : //github.com/square/okhttp

如果你不想发送和接收大文件,我会build议HttpClient。
开始使用起来要容易得多,互联网上还有更多可用的例子。

注意:这是HttpClient不同于HTTPClient(注意事例),这是另一个供应商的实现。

尽pipe标签专门用于Android,但通常HttpURLConnection在Java EE应用程序中也是更好的select,因为它将利用应用程序服务器随附的HTTP堆栈,其中包括在应用程序服务器级别configurationHTTPS证书,而不是码。

它还将允许您获取由应用程序服务器堆栈提供的最新版本的SSL,而不是与可能不适用于TLS 1.2的旧版本的httpclient卡住

我通常会推荐URLConnection因为它可以通过JDK进行更新。 在一个案例中,我们打了一个电话,使用了不支持TLS v1.2的旧版HTTP客户端。

但是,我不会直接使用URLConnection ,我通常会使用更高级别的API(如JAX-RS客户端或wsimport客户端)连接到另一个站点。