इस प्रोजेक्ट के बारे में
OkHttp JVM, Android और GraalVM के लिए एक HTTP क्लाइंट लाइब्रेरी है। इसके README के अनुसार, यह डिफ़ॉल्ट रूप से कुशल होने के लिए डिज़ाइन किया गया है: HTTP/2 सपोर्ट समान होस्ट को एक सोकेट पर साझा करने देता है, कनेक्शन पूलिंग HTTP/2 अनुपलब्ध होने पर अनुरोध लैटेन्सी कम करता है, ट्रांसपेरेंट GZIP डाउनलोड आकार को छोटा करता है, और रिस्पॉन्स कैशिंग दोहराए जाने वाले अनुरोधों के लिए नेटवर्क को पूरी तरह से रोकता है।
लाइब्रेरी को अविश्वसनीय नेटवर्क पर रésilिएंट के रूप में वर्णित किया गया है। यह सामान्य कनेक्शन समस्याओं से चुपचाप उबरता है, और जब किसी सेवा के एक से अधिक IP पते होते हैं तो यह पहला कनेक्ट विफल होने पर वैकल्पिक पतनों का प्रयास करता है, जिसे README ने IPv4+IPv6 और रंडंडेंट डेटा सेंटर में सेवाओं के लिए उपयोगी बताया है। इसमें TLS 1.3, ALPN और सर्टिफिकेट पिनिंग सहित आधुनिक TLS सुविधाओं का सपोर्ट है, और व्यापक कनेक्टिविटी के लिए फॉलबैक पर कॉन्फ़िगर किया जा सकता है।
API फ्लुएंट बिल्डर्स और इम्म्यूटेबल रिक्वेस्ट/रिस्पॉन्स ऑब्जेक्ट्स का उपयोग करती है, और कॉलबैक्स के साथ सिंक्रोनस ब्लॉकिंग कॉल्स और एसिंक्रोनस दोनों का सपोर्ट करती है। README में एक URL डाउनलोड करने और सर्वर पर JSON पोस्ट करने के लिए छोटे उदाहरण शामिल हैं, और अधिक के लिए recipes पेज की ओर इशारा किया जाता है।
OkHttp आधुनिक HTTP स्पेसिफ़िकेशन्स का पालन करता है, जिनमें RFC 9110 (HTTP सेमांटिक्स), RFC 9111 (कैशिंग), RFC 9112 (HTTP/1.1), RFC 9113 (HTTP/2), RFC 6455 (WebSockets) और WHATWG सर्वर-सेंट इवेंट्स स्पेसिफ़िकेशन शामिल हैं। जहां स्पेस बहुत अस्पष्ट होते हैं, यह आधुनिक यूज़र एजेंट्स के व्यवहार का पालन करता है। README कहता है कि OkHttp जानबूझकर अत्यधिक कॉन्फ़िगर करने योग्य नहीं होना चाहता, विशेष रूप से बग वाली सर्वरों या अवैध परिदृश्यों से निपटने के लिए, और सीमाओं के उदाहरण जैसे GET में बॉडी की अनुमति न देना और कैश को वैकल्पिक कार्यान्वयनों के साथ एक इंटरफ़ेस के रूप में प्रकट न करना सूचीबद्ध करता है।
आवश्यकताएं: Android 5.0+ (API लेवल 21+) और Java 8+। Android पर यह AndroidX Startup का उपयोग करता है; यदि इनिशियलाइज़र को मैनिफ़ेस्ट में अक्षम किया गया है, तो एप्प्स को Application.onCreate में OkHttp.initialize(applicationContext) कॉल करना होगा। यह उच्च-प्रदर्शन I/O के लिए Okio और Kotlin स्टैंडर्ड लाइब्रेरी पर निर्भर करता है। README सुरक्षा समस्याओं के खिलाफ बचाव के रूप में OkHttp को अपडेट रखने की सलाह देता है, और बताता है कि यह प्लेटफ़ॉर्म की इनबिल्ट TLS इम्प्लीमेंटेशन का उपयोग करता है, जब Conscrypt पहले सुरक्षा प्रदाता हो तो Java प्लेटफ़ॉर्म पर वैकल्पिक Conscrypt सपोर्ट के साथ। एक विरासत 3.12.x ब्रांच Android 2.3+ और Java 7+ का समर्थन करती है, लेकिन उन प्लेटफ़ॉर्म पर TLS 1.2 नहीं होता और उनका उपयोग नहीं करना चाहिए।
वितरण Maven Central के माध्यम से होता है, संस्करण एलाइनमेंट के लिए BOM, R8/ProGuard नियम और स्नैपशॉट बिल्ड के साथ। OkHttp को Kotlin Multiplatform प्रोजेक्ट के रूप में प्रकाशित किया जाता है; Maven प्रोजेक्ट को okhttp-jvm और okhttp-android के बीच चुनना होता है क्योंकि Maven प्रोजेक्ट में okhttp आर्टिफ़ैक्ट खाली होता है। OkHttp 5.2+ Java 9 मॉड्यूल्स लागू करता है, और README स्थिर सार्वजनिक मॉड्यूल्स की सूची देता है, जिनमें okhttp3, okhttp3.brotli, okhttp3.coroutines, okhttp3.dnsoverhttps, okhttp3.logging, okhttp3.sse, okhttp3.tls, okhttp3.urlconnection, mockwebserver3 और इसके JUnit 4/5 वेरिएंट शामिल हैं।
MockWebServer को HTTP, HTTPS और HTTP/2 क्लाइंटों के टेस्टिंग के लिए शामिल किया गया है। README इसे मुख्य रूप से आंतरिक टेस्टिंग और OkHttp क्लाइंट का उपयोग करने वाले एप्प्स की बेसिक टेस्टिंग के लिए उपयोग किया जाता है, एक पूर्ण-सुविधाओं वाला स्टैंडअलोन HTTP टेस्टिंग लाइब्रेरी नहीं, और बताता है कि यह नई सुविधाओं के लिए सक्रिय रूप से विकसित नहीं है; उपयोगकर्ता इसे छोड़ सकते हैं और MockServer जैसे विकल्पों पर विचार कर सकते हैं। GraalVM native image बिल्ड स्वचालित रूप से काम करने बताए जाते हैं, okcurl मॉड्यूल एक उदाहरण के रूप में। प्रोजेक्ट Apache License 2.0 के तहत लाइसेंस प्राप्त है, कॉपीराइट Square, Inc.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.