2009-11-16 15 views
8

हम जेआरई 1.4 पर एक आरईएसटी ग्राहक लागू कर रहे हैं।HTTPClient या HttpUrlConnection का उपयोग करें?

क्लाइंट के लिए दो अच्छे विकल्प लगता है REST ढांचे HttpClient और HttpUrlConnection हैं।

क्या जेआरई के HttpUrlConnection पर HttpClient का उपयोग करने का कोई कारण है?

+0

तुलना वास्तव में नवाचारों httpclient में दिख रही है यही कारण है, यह कुछ भी नहीं किया है Apache के HttpClient afaik – objects

+0

धन्यवाद ऑब्जेक्ट्स .. हटाए गए लिंक के साथ करें। –

उत्तर

1

मेरे अनुभव में HttpClient थोड़ा आसान और HttpUrlConnection का उपयोग करने के लिए उपयोग करने के लिए अधिक सहज है, लेकिन मुझे लगता है कि यह एक बहुत ही व्यक्तिपरक निर्णय और वाईएमएमवी है।

1

मैं जेआरई संस्करण के साथ जाऊंगा, इसलिए मेरे पास जहाज के लिए एक कम निर्भरता होगी।

+1

यह तुलना थोड़े दिनांकित – jitter

+2

दिखती है हम में से कुछ ** ** के नवीनतम संस्करणों का उपयोग करने की विलासिता नहीं है **-( –

0

HttpUrlConnection को संभालना आसान है। आरईएसटी कार्यान्वयन काफी सरल हैं।

हालांकि आपको इस कार्यान्वयन के बारे में पूरे पर्यावरण पर विचार करना चाहिए और जांचें कि आपके लिए क्या बेहतर काम करेगा।

2

Restlet Framework में एक एपीआई भी है जो सर्वर-साइड और क्लाइंट-साइड दोनों काम करती है। हम प्लग करने योग्य क्लाइंट कनेक्टर का समर्थन करते हैं, HttpURLConnection या अपाचे HTTP क्लाइंट या हमारे अपने आंतरिक HTTP क्लाइंट का लाभ उठाते हैं।

हमारा क्लाइंट रिसोर्स क्लास एक उच्च स्तरीय HTTP क्लाइंट एपीआई प्रदान करता है, जिसमें स्वचालित पुनर्निर्देशन, ऑब्जेक्ट्स और प्रस्तुतियों, सामग्री बातचीत और अधिक के बीच पारदर्शी रूपांतरण शामिल हैं।

सादर,

जेरोम Louvel

Restlet ~ संस्थापक और लीड डेवलपर ~ http://www.restlet.org

Noelios टेक्नोलॉजीज ~ सह संस्थापक ~ http://www.noelios.com

+0

हम 1.4 पर हैं - 1.4 पर रीसेट काम करता है? –

+0

@Marcus: हाँ, ऐसा करता है, मैं अभी जावा 1.6 में रीस्टलेट के क्लाइंट का उपयोग कर रहा हूं और यह एक सपना है। (हमने इसे अपाचे HTTP क्लाइंट के शीर्ष पर बैठने के लिए कॉन्फ़िगर किया है, जो java.net से बहुत बेहतर है। HttpUrlConnection।) –

4

मैं आप एक ही दे देंगे, कंक्रीट जेडीके कार्यान्वयन पर अपाचे के HTTP क्लाइंट का पक्ष लेने का कारण: जेडीके का HttpUrlConnection टाइमआउट का समर्थन नहीं करता है *, अपाचे का HTTP क्लाइंट करता है।

अनुप्रयोगों में हमेशा अन्य सिस्टम (डेटाबेस, रिमोट सेवाएं, अपने सर्वर बैकएंड, ...) में कॉल करते समय टाइमआउट सेट करने की क्षमता होनी चाहिए।

* यह जावा 1.5 में तय किया गया था; जावा 1.5 और HttpUrlConnection में उच्च समर्थन टाइमआउट।

+7

सत्य नहीं है! यह जावा 1.5 में तय किया गया था। –

+0

मैं सही खड़ा हूँ। जानना अच्छा है (यह URLConnection क्लास पर है)। – SteveD

+0

अच्छा बिंदु। हम 1.4 पर हैं इसलिए यह पूरी तरह से प्रासंगिक प्रतीत होता है। –

4

मैं java.net पर जकार्ता कॉमन्स HTTP क्लाइंट की अनुशंसा करता हूं। एचटीपीयूआरएल कनेक्शन क्योंकि यह अधिक परिपक्व है और इसमें richer feature set है। उदाहरण के लिए आप बहु-थ्रेडेड कनेक्शन पूल सेट अप करने के लिए कह सकते हैं (MultiThreadedHttpConnectionManager देखें), और इसमें सभी HTTP विधियों (GET, PUT, POST, DELETE, OPTIONS, TRACE) के लिए पूर्ण समर्थन है।

1

... httpclient प्रॉक्सी आदि के लिए Kerberos/ntlm प्रमाणीकरण का समर्थन नहीं करता ... जावा के httpurlconnection बॉक्स से बाहर प्रमाणीकरण करना होगा ...

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