2012-03-04 36 views
16

我正在爲Android應用程序創建登錄表單。我希望使用post方法將信息發送到服務器端,由PHP文件處理;進而驗證參數併發送回應。URLConnection或HTTPClient:哪個提供更好的功能和更高的效率?

我已經看過使用HttpClient和URLConnection的實現,它們非常相似。哪種方法在android應用程序內使用效率更高?

感謝 Fabii

+2

查看官方安卓博客[here](http://android-developers.blogspot.co.nz/2011/09/androids-http-clients.html),值得一看。 – yorkw 2012-03-04 01:15:12

+0

http://stackoverflow.com/q/4799151/741249 – THelper 2012-12-19 11:25:20

回答

18

我相信,在這種情況下,就看你會發現更多的自然取其API。通常,HTTPClient在服務器端應用程序(或可能是批處理應用程序)內部效率更高,因爲它允許指定多線程連接池,最大總連接數和每個主機連接數最大值(這確保了併發連接相同的主機不會被序列化(與HttpUrlConnection有關的問題))。但在Android應用程序中,您可能一次只能建立一個連接,所以這並不重要。

0

如果你不想發送和接收大文件,我會建議HttpClient。
上手和使用起來要容易得多,互聯網上還有更多可用的示例。

注意:這是HttpClient不同於HTTPClient(注意事例),這是另一個供應商的實現。

18

我對此做了一點研究, 我一直在Android中使用Apache HttpClient很長一段時間。 它看起來很自然,我認爲它會隨着時間的推移而得到改善。

另一方面,當我爲傳統的BlackBerryOS開發時,我一直在使用 HttpUrlConnection。

我清楚地看到BB在網絡環境下的性能比Android好。

HttpClient是一個功能齊全但有問題的類,它提供了一套龐大的API /方法。它可以用來爲Android創建功能完備的WebBrowser。但它在舊版Android上有一些問題,而且它沒有被Google主動貢獻。

雖然HttpUrlConnection有一個非常有用的API,它對開發網絡客戶端應用程序非常有用。它在Android 2.3及更高版本上改進了響應緩存並改進了壓縮技術。當您構建網絡客戶端應用程序時,它將重新開始。

「阿帕奇了HTTPClient對埃克萊爾和升級Froyo更少的錯誤,這是對這些版本的最佳選擇。

對於薑餅好,HttpURLConnection類是最好的選擇。它簡單的API和小尺寸使得它非常適合Android,透明的壓縮和響應緩存減少了網絡的使用,提高了速度並節省了電量,新的應用程序應該使用HttpURLConnection;這正是Google今後將耗費精力的地方。「

請參閱有關詳情

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

+7

可能的副本令人驚訝的類似於這個博客條目:http://android-developers.blogspot.com/2011/09/androids-http-clients.html – 2013-10-25 12:54:08

+0

也許你應該引用參考。 – amertkara 2015-07-03 17:24:35

+0

請您告訴我們您遇到過什麼樣的性能差異? 除緩存外,還有其他任何特定的壓縮。 – Hrishikesh 2015-11-26 03:11:02

0

儘管該標籤專門用於Android,但一般來說,HttpURLConnection在Java EE應用程序中也是更好的選擇,因爲它將利用隨應用程序服務器附帶的HTTP堆棧,其中包括在應用程序中配置HTTPS證書服務器級別而不是代碼。

它也將讓你獲得最新版本的應用程序服務器堆棧提供固態光源的,而不是繼續使用舊版本的HttpClient可能不使用TLS 1.2工作

0

我一般會建議URLConnection因爲它可以使用JDK進行更新。在一個案例中,我們接到一個使用舊版HTTP客戶端的調用,該客戶端不支持TLS v1.2。

但是,我不會直接使用URLConnection,我通常會使用更高級別的API(如JAX-RS客戶端或wsimport客戶端)連接到另一個站點。

相關問題