Android URLConnection或HTTPClient:哪个提供更好的功能和更高的效率?

Android URLConnection或HTTPClient:哪个提供更好的功能和更高的效率?,android,httpclient,urlconnection,Android,Httpclient,Urlconnection,我想为android应用程序创建一个登录表单。我想使用post方法将信息发送到服务器端,由PHP文件处理;这反过来验证参数并发送回响应 我看过使用HttpClient和URLConnection的实现,它们非常相似。在android应用程序中,哪一个更有效 谢谢 Fabii我相信在这种情况下,取决于您认为更自然的API。通常,HTTPClient在服务器端应用程序(或者批处理应用程序)中更有效,因为它允许您指定多线程连接池,其中包含最大总连接数和最大每主机连接数(这确保到同一主机的并发连接不会被

我想为android应用程序创建一个登录表单。我想使用post方法将信息发送到服务器端,由PHP文件处理;这反过来验证参数并发送回响应

我看过使用HttpClient和URLConnection的实现,它们非常相似。在android应用程序中,哪一个更有效

谢谢
Fabii

我相信在这种情况下,取决于您认为更自然的API。通常,HTTPClient在服务器端应用程序(或者批处理应用程序)中更有效,因为它允许您指定多线程连接池,其中包含最大总连接数和最大每主机连接数(这确保到同一主机的并发连接不会被序列化)(HttpUrlConnection有问题))。但在android应用程序中,您可能一次只建立一个连接,所以这无关紧要。

如果您不尝试发送和接收大文件,我建议使用HttpClient。
它更容易开始使用,并且在互联网上有更多的工作示例


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

我对此做了一些研究, 我已经在Android中使用ApacheHttpClient很长时间了。 在我看来,这是一个自然的选择,我认为随着时间的推移,它会得到改善

另一方面,当我为legacy BlackBerryOS开发时,我一直在使用 HttpUrlConnection

很明显,在网络环境下,BB的性能比Android要好

HttpClient是一个功能齐全但有缺陷的类,它提供了大量的API/方法。它可以用来为Android创建一个功能齐全的WebBrowser。但它在旧版本的Android上存在一些问题,而且谷歌并未积极参与其中

而HttpUrlConnection有一个非常有用的API,它只对开发网络客户端应用程序有用。它在Android 2.3及更高版本上改进了响应缓存和压缩技术。当您构建网络客户端应用程序时,它会重新启动

“ApacheHTTPClient在Eclair和Froyo上的bug较少。它是这些版本的最佳选择

对于姜饼和更好的产品,HttpURLConnection是最佳选择。其简单的API和较小的尺寸使其非常适合Android。透明的压缩和响应缓存减少了网络使用,提高了速度并节省了电池。新的应用程序应该使用HttpURLConnection;这是谷歌将花费精力的地方阿尔德。”

有关详细信息,请参阅


根据android团队的说法,您应该在姜饼上使用HttpURLConnection,因为这是他们将投入新开发工作的地方


编辑:最近我发现了okhttp by Square,它包括SPDY支持和自动重试:

虽然标签是专门为Android设计的,但一般来说,当涉及Java EE应用程序时,HttpURLConnection也是更好的选择,因为它将利用应用服务器附带的HTTP堆栈,其中包括HTTPS证书位于应用程序服务器级别,而不是代码级别


它还允许您获取应用程序服务器堆栈提供的最新版本的SSLs,而不是使用可能无法与TLS 1.2一起工作的旧版本的httpclient。我通常建议使用
URLConnection
,因为它可以使用JDK进行更新。在一个案例中,我们使用了一个旧版本的调用不支持TLS v1.2的HTTP客户端的


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

请查看android官方博客,值得一读。可能与此博客条目惊人相似的重复内容:也许你应该引用参考资料。你可以吗让我们知道您经历了什么样的性能差异?除了缓存、压缩之外,还有哪些具体的性能差异。