2012-03-04 7 views
16

मैं एंड्रॉइड एप्लिकेशन के लिए लॉगिन फॉर्म बनाना चाहता हूं। मैं सर्वर पक्ष को जानकारी भेजने के लिए एक पोस्ट विधि का उपयोग करना चाहता हूं जहां यह एक PHP फ़ाइल द्वारा संभालता है; जो बदले में पैरामीटर को मान्य करता है और प्रतिक्रिया वापस भेजता है।URL कनेक्शन या HTTP क्लाइंट: जो बेहतर कार्यक्षमता और अधिक दक्षता प्रदान करता है?

मैंने एचटीपी क्लाइंट और यूआरएल कनेक्शन का उपयोग करके कार्यान्वयन को देखा है, वे बहुत समान हैं। एंड्रॉइड ऐप के उपयोग के लिए कौन सा अधिक कुशल है?

धन्यवाद Fabii

+2

आधिकारिक एंड्रॉइड ब्लॉग [यहां] देखें (http://android-developers.blogspot.co.nz/2011/09/androids-http-clients.html), पढ़ने के लायक है। – yorkw

+0

http://stackoverflow.com/q/4799151/741249 – THelper

उत्तर

18

मेरा मानना ​​है कि इस मामले में यह अप करने के लिए जो भी एपीआई आप और अधिक प्राकृतिक लगता है है। आम तौर पर, HTTP क्लाइंट एक सर्वर साइड एप्लिकेशन (या शायद बैच एप्लिकेशन) के अंदर अधिक कुशल है, क्योंकि यह आपको कुल कनेक्शन की अधिकतम संख्या के साथ एक बहुप्रचारित कनेक्शन पूल निर्दिष्ट करने की अनुमति देता है, और अधिकतम प्रति होस्ट कनेक्शन गिनती (जो समवर्ती कनेक्शन को सुनिश्चित करता है एक ही होस्ट को क्रमबद्ध नहीं किया जाता है (HttpUrlConnection के साथ एक समस्या))। लेकिन एक एंड्रॉइड ऐप में, आप शायद एक समय में केवल एक कनेक्शन बनायेंगे, इसलिए इससे कोई फर्क नहीं पड़ता।

0

यदि आप बड़ी फ़ाइलों को भेजने और प्राप्त करने की कोशिश नहीं कर रहे हैं, तो मैं HttpClient का सुझाव दूंगा।
शुरू करना और उपयोग करना बहुत आसान है, और इंटरनेट पर बहुत अधिक काम करने वाले उदाहरण उपलब्ध हैं।

नोट: यह HttpClient HTTPClient (नोट केस) से अलग है जो एक और विक्रेता का कार्यान्वयन है।

18

मैंने इस पर थोड़ा सा शोध किया है, मैं एंड्रॉइड में लंबे समय से अपाचे एचटीपी क्लाइंट का उपयोग कर रहा हूं। यह मेरे लिए एक प्राकृतिक पसंद देखा और सोचा कि यह समय के साथ में सुधार होगा।

दूसरी ओर जब मैं विरासत ब्लैकबेरीओएस के लिए विकास कर रहा था, तो मैं HttpUrlConnection का उपयोग कर रहा हूं।

यह स्पष्ट रूप से मुझे स्पष्ट था कि बीबी का प्रदर्शन नेटवर्किंग के संदर्भ में एंड्रॉइड से बेहतर था।

एचटीपी क्लाइंट एक पूरी तरह कार्यात्मक लेकिन छोटी गाड़ी वर्ग है जो एपीआई/विधियों का एक बड़ा सेट प्रदान करता है। इसका उपयोग एंड्रॉइड के लिए पूरी तरह कार्यात्मक वेब ब्राउजर बनाने के लिए किया जा सकता है। लेकिन इसमें एंड्रॉइड के पुराने संस्करण पर कुछ मुद्दे हैं और इसका सक्रिय रूप से Google द्वारा योगदान नहीं दिया जा रहा है।

जबकि HttpUrlConnection में एक बहुत ही उपयोगी एपीआई है जो नेटवर्किंग क्लाइंट एप्लिकेशन विकसित करने के लिए उपयोगी है। इसने एंड्रॉइड 2.3 और उसके बाद के संस्करण में प्रतिक्रिया कैशिंग और बेहतर संपीड़न तकनीक में सुधार किया है। जब आप नेटवर्किंग क्लाइंट एप्लिकेशन बना रहे हों तो इसे पुनः संयोजित किया जाता है।

"अपाचे httpclient Eclair और Froyo पर कम कीड़े है। यह इन रिलीज के लिए सबसे अच्छा विकल्प है।

जिंजरब्रेड के लिए और बेहतर, HttpURLConnection सबसे अच्छा विकल्प है। इसका सरल एपीआई और छोटे आकार बनाता है यह एंड्रॉइड के लिए बहुत अच्छा है। पारदर्शी संपीड़न और प्रतिक्रिया कैशिंग नेटवर्क उपयोग को कम करती है, गति में सुधार करती है और बैटरी को बचाती है। नए अनुप्रयोगों को 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 –

+0

शायद आपको संदर्भ उद्धृत करना चाहिए। – amertkara

+0

क्या आप कृपया हमें बता सकते हैं कि आपने किस प्रकार के प्रदर्शन अंतर का अनुभव किया है? कोई विशिष्ट, कैश, संपीड़न के अलावा। – Hrishikesh

8

के लिए संदर्भ लें एंड्रॉयड टीम आप जिंजरब्रेड और बेहतर पर HttpURLConnection का उपयोग करना चाहिए के अनुसार के बाद से है कि वह जगह है जहाँ वे नए विकास के प्रयास डाल देंगे।

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

संपादित करें: इन दिनों मुझे स्क्वायर द्वारा ओखेटप मिला है, जिसमें एसपीडीवाई समर्थन और स्वचालित रीट्रीज़ शामिल हैं: https://github.com/square/okhttp

0

हालांकि टैग विशेष रूप से एंड्रॉइड के लिए है, सामान्य रूप से जावा ईई अनुप्रयोगों की बात करते समय HttpURLConnection भी बेहतर विकल्प है क्योंकि यह एप्लिकेशन सर्वर के साथ आने वाले HTTP स्टैक का उपयोग करेगा जिसमें एप्लिकेशन में HTTPS प्रमाणपत्रों की कॉन्फ़िगरेशन शामिल है कोड के बजाय सर्वर स्तर।

यह भी आप के बजाय httpclient के एक पुराने संस्करण के साथ फंस जा रहा है कि TLS 1.2 के साथ काम नहीं कर सकता

0

मैं आम तौर पर URLConnection सिफारिश करेंगे आवेदन सर्वर ढेर द्वारा प्रदान की SSLs के नवीनतम संस्करण को प्राप्त करने के लिए अनुमति देते हैं, क्योंकि यह जेडीके के साथ अपडेट किया जा सकता है। एक मामले में हमारे पास एक कॉल था जिसने HTTP क्लाइंट के पुराने संस्करण का उपयोग किया जो टीएलएस v1.2 का समर्थन नहीं करता था।

हालांकि, मैं सीधे URLConnection का उपयोग नहीं करता, मैं आम तौर पर किसी अन्य साइट से कनेक्ट करने के लिए जेएक्स-आरएस क्लाइंट या wsimport क्लाइंट जैसे उच्च स्तरीय एपीआई का उपयोग करता।

संबंधित मुद्दे