UrlRequest.Builder

abstract class UrlRequest.Builder


UrlRequest सेकंड के लिए बिल्डर. इसकी मदद से, build का इस्तेमाल करके अनुरोध बनाने से पहले उन्हें कॉन्फ़िगर किया जा सकता है. newUrlRequestBuilder को कॉल करके बिल्डर बनाया जा सकता है.

खास जानकारी

कॉन्स्टेंट

const Int

अनुरोध की सबसे ज़्यादा प्राथमिकता.

const Int

अनुरोध की सबसे कम प्राथमिकता.

const Int

अनुरोध की प्राथमिकता कम है.

const Int

अनुरोध की प्राथमिकता बहुत कम है.

const Int

अनुरोध की प्राथमिकता मीडियम है.

सार्वजनिक कंस्ट्रक्टर

सार्वजनिक फ़ंक्शन

abstract UrlRequest.Builder!
addHeader(header: String!, value: String!)

यह कुकी, अनुरोध का हेडर जोड़ती है.

UrlRequest.Builder!
addRequestAnnotation(annotation: Any!)

इस अनुरोध के साथ एनोटेशन ऑब्जेक्ट को जोड़ता है.

abstract UrlRequest.Builder!

यह मार्क करता है कि इस अनुरोध को पूरा करने वाले, इस अनुरोध के लिए कॉलबैक ( UploadDataProvider और UrlRequest.Callback के लिए) को सूचना देने के लिए, जान-बूझकर इनलाइन एक्ज़ीक्यूशन कर रहे हैं. जैसे, Guava का directExecutor या java.util.concurrent.ThreadPoolExecutor.CallerRunsPolicy.

UrlRequest.Builder!
bindToNetwork(networkHandle: Long)

यह अनुरोध को बताए गए नेटवर्क हैंडल से बाइंड करता है.

abstract UrlRequest!

यह इस Builder में मौजूद कॉन्फ़िगरेशन का इस्तेमाल करके, UrlRequest बनाता है.

abstract UrlRequest.Builder!

इस कुकी से, अनुरोध के लिए कैश मेमोरी की सुविधा बंद हो जाती है.

abstract UrlRequest.Builder!

इस अनुरोध के लिए, इस्तेमाल किए जाने वाले एचटीटीपी तरीके का वर्ब सेट करता है.

abstract UrlRequest.Builder!
setPriority(priority: Int)

यह कुकी, अनुरोध की प्राथमिकता सेट करती है. यह प्राथमिकता, REQUEST_PRIORITY_* वैल्यू में से कोई एक होनी चाहिए.

UrlRequest.Builder!
@UrlRequest.Experimental
setRawCompressionDictionary(
    dictionarySha256Hash: ByteArray!,
    dictionary: ByteBuffer!,
    dictionaryId: String!
)

इस कुकी से, Cronet को इस अनुरोध के लिए बताई गई कंप्रेशन डिक्शनरी का इस्तेमाल करने की अनुमति मिलती है.

UrlRequest.Builder!

यह एक लिसनर सेट करता है, जो onCanceled(), onFailed() या onSucceeded() के वापस आने के बाद शुरू होता है.

UrlRequest.Builder!

यह कुकी, android.net.TrafficStats टैग सेट करती है. इसका इस्तेमाल तब किया जाता है, जब इस अनुरोध की वजह से सॉकेट ट्रैफ़िक जनरेट होता है.

UrlRequest.Builder!

यह कुकी, इस अनुरोध की वजह से होने वाले सॉकेट ट्रैफ़िक का हिसाब रखते समय इस्तेमाल करने के लिए खास यूआईडी सेट करती है.

abstract UrlRequest.Builder!
setUploadDataProvider(
    uploadDataProvider: UploadDataProvider!,
    executor: Executor!
)

यह कुकी, डेटा अपलोड करने की सुविधा देने वाली कंपनी को सेट करती है.

कॉन्स्टेंट

REQUEST_PRIORITY_HIGHEST

const val REQUEST_PRIORITY_HIGHEST = 4: Int

अनुरोध की सबसे ज़्यादा प्राथमिकता. setPriority को पास किया गया.

REQUEST_PRIORITY_IDLE

const val REQUEST_PRIORITY_IDLE = 0: Int

अनुरोध की सबसे कम प्राथमिकता. setPriority को पास किया गया.

REQUEST_PRIORITY_LOW

const val REQUEST_PRIORITY_LOW = 2: Int

अनुरोध की प्राथमिकता कम है. setPriority को पास किया गया.

REQUEST_PRIORITY_LOWEST

const val REQUEST_PRIORITY_LOWEST = 1: Int

अनुरोध की प्राथमिकता बहुत कम है. setPriority को पास किया गया.

REQUEST_PRIORITY_MEDIUM

const val REQUEST_PRIORITY_MEDIUM = 3: Int

अनुरोध की प्राथमिकता मीडियम है. setPriority को पास किया गया. अनुरोध को डिफ़ॉल्ट रूप से यह प्राथमिकता दी जाती है.

सार्वजनिक कंस्ट्रक्टर

बिल्डर

Builder()

सार्वजनिक फ़ंक्शन

addHeader

abstract fun addHeader(header: String!, value: String!): UrlRequest.Builder!

यह कुकी, अनुरोध का हेडर जोड़ती है.

पैरामीटर
header: String!

हेडर का नाम.

value: String!

हेडर की वैल्यू.

रिटर्न
UrlRequest.Builder!

बिल्डर को चेन बनाने में मदद करता है.

addRequestAnnotation

fun addRequestAnnotation(annotation: Any!): UrlRequest.Builder!

इस अनुरोध के साथ एनोटेशन ऑब्जेक्ट को जोड़ता है. एक से ज़्यादा भी जोड़े जा सकते हैं. RequestFinishedInfo.Listener को पास किया गया, getAnnotations देखें.

पैरामीटर
annotation: Any!

RequestFinishedInfo प्रॉपर्टी वाला एक ऑब्जेक्ट, जिसे RequestFinishedInfo.Listener को पास किया जा सकता है.

रिटर्न
UrlRequest.Builder!

बिल्डर को चेन बनाने में मदद करता है.

allowDirectExecutor

abstract fun allowDirectExecutor(): UrlRequest.Builder!

यह मार्क करता है कि इस अनुरोध को पूरा करने वाले, इस अनुरोध के लिए कॉलबैक ( UploadDataProvider और UrlRequest.Callback के लिए) को सूचना देने के लिए, जान-बूझकर इनलाइन एक्ज़ीक्यूशन कर रहे हैं. जैसे, Guava का directExecutor या java.util.concurrent.ThreadPoolExecutor.CallerRunsPolicy.

चेतावनी: इस विकल्प से, नेटवर्क थ्रेड को गलती से ब्लॉक करना आसान हो जाता है. अगर आपके कॉलबैक, डिस्क I/O करते हैं, लॉक हासिल करते हैं या ऐसे कोड में कॉल करते हैं जिसे आपने ध्यान से कंट्रोल और ऑडिट नहीं किया है, तो इसका इस्तेमाल नहीं किया जाना चाहिए.

bindToNetwork

fun bindToNetwork(networkHandle: Long): UrlRequest.Builder!

यह अनुरोध को बताए गए नेटवर्क हैंडल से बाइंड करता है. Cronet, इस अनुरोध को सिर्फ़ इस हैंडल से जुड़े नेटवर्क का इस्तेमाल करके भेजेगा. अगर यह नेटवर्क डिसकनेक्ट हो जाता है, तो अनुरोध पूरा नहीं होगा. गड़बड़ी की सटीक जानकारी इस बात पर निर्भर करेगी कि नेटवर्क डिसकनेक्ट होने पर, अनुरोध को प्रोसेस करने की प्रोसेस किस चरण में थी. नेटवर्क हैंडल, Network#getNetworkHandle के ज़रिए पाए जा सकते हैं. यह सुविधा सिर्फ़ Android Marshmallow और इसके बाद के वर्शन पर उपलब्ध है.

पैरामीटर
networkHandle: Long

अनुरोध को बाइंड करने के लिए नेटवर्क हैंडल. अनबाइंड करने के लिए, UNBIND_NETWORK_HANDLE तय करें.

रिटर्न
UrlRequest.Builder!

बिल्डर को चेन बनाने में मदद करता है.

बनाएं

abstract fun build(): UrlRequest!

यह इस Builder में मौजूद कॉन्फ़िगरेशन का इस्तेमाल करके, UrlRequest बनाता है. इसके बाद, UrlRequest को start पर कॉल करके शुरू किया जा सकता है.

रिटर्न
UrlRequest!

इस Builder में मौजूद कॉन्फ़िगरेशन का इस्तेमाल करके UrlRequest बनाया गया है.

disableCache

abstract fun disableCache(): UrlRequest.Builder!

इस कुकी से, अनुरोध के लिए कैश मेमोरी की सुविधा बंद हो जाती है. अगर कॉन्टेक्स्ट को कैश मेमोरी का इस्तेमाल करने के लिए सेट अप नहीं किया गया है, तो इस कॉल का कोई असर नहीं होगा.

रिटर्न
UrlRequest.Builder!

बिल्डर को चेन बनाने में मदद करता है.

setHttpMethod

abstract fun setHttpMethod(method: String!): UrlRequest.Builder!

इस अनुरोध के लिए, इस्तेमाल किए जाने वाले एचटीटीपी तरीके का वर्ब सेट करता है.

अगर इस तरीके को कॉल नहीं किया जाता है, तो डिफ़ॉल्ट रूप से "GET" का इस्तेमाल किया जाता है. हालांकि, अगर अनुरोध में कोई बॉडी नहीं है, तो "POST" का इस्तेमाल किया जाता है.

पैरामीटर
method: String!

"GET", "HEAD", "DELETE", "POST" या "PUT".

रिटर्न
UrlRequest.Builder!

बिल्डर को चेन बनाने में मदद करता है.

setPriority

abstract fun setPriority(priority: Int): UrlRequest.Builder!

यह कुकी, अनुरोध की प्राथमिकता सेट करती है. यह प्राथमिकता, REQUEST_PRIORITY_* वैल्यू में से कोई एक होनी चाहिए. अगर इस तरीके का इस्तेमाल नहीं किया जाता है, तो अनुरोध को REQUEST_PRIORITY_MEDIUM प्राथमिकता दी जाती है.

पैरामीटर
priority: Int

अनुरोध की प्राथमिकता, जो REQUEST_PRIORITY_* वैल्यू में से एक होनी चाहिए.

रिटर्न
UrlRequest.Builder!

बिल्डर को चेन बनाने में मदद करता है.

setRawCompressionDictionary

@UrlRequest.Experimental
fun setRawCompressionDictionary(
    dictionarySha256Hash: ByteArray!,
    dictionary: ByteBuffer!,
    dictionaryId: String!
): UrlRequest.Builder!

इस कुकी से, Cronet को इस अनुरोध के लिए बताई गई कंप्रेशन डिक्शनरी का इस्तेमाल करने की अनुमति मिलती है. ऐसा होने पर, Cronet सर्वर को यह सूचना दे सकता है कि कंप्रेशन डिक्शनरी उपलब्ध है. इसके लिए, यह ज़रूरी है कि इस अनुरोध को पूरा करने वाला CronetEngine, ऐसे कंप्रेशन स्कीम को चालू करने के लिए कॉन्फ़िगर किया गया हो जो बाहरी डिक्शनरी के साथ काम करती हो. यह Cronet में, draft-ietf-httpbis-compression-dictionary को आंशिक तौर पर लागू करता है. Cronet, "Use-As-Dictionary" रिस्पॉन्स हेडर को सीधे तौर पर हैंडल नहीं करेगा. इसके बजाय, यह एम्बेडर पर निर्भर करेगा. एम्बेडर के पास ये विकल्प होंगे: या तो, वह इन हेडर को हैंडल करे और बाद में उन अनुरोधों के लिए UrlRequest.Builder#setCompressionDictionary को कॉल करे जो Use-As-Dictionary के नियमों से मेल खाते हैं. या, वह किसी अन्य आउट ऑफ़ बैंड मैकेनिज़्म के ज़रिए कंप्रेशन डिक्शनरी फ़ेच करे और बाद में UrlRequest.Builder#setCompressionDictionary को कॉल करे. Cronet, डिक्शनरी को सिर्फ़ इस UrlRequest से मैच करने के तौर पर समझेगा. अगर अनुरोध को रीडायरेक्ट किया जाता है और कॉन्टेंट को एम्बेड करने वाला व्यक्ति रीडायरेक्ट किए गए यूआरएल का इस्तेमाल करने का फ़ैसला करता है, तो डिक्शनरी नए यूआरएल से भी मैच करेगी.

पैरामीटर
dictionarySha256Hash: ByteArray!

कंप्रेशन डिक्शनरी का SHA-256.

dictionary: ByteBuffer!

कंप्रेशन डिक्शनरी, जिसका इस्तेमाल Cronet इस UrlRequest के लिए कर सकता है. यह एक डायरेक्ट ByteBuffer होना चाहिए.

dictionaryId: String!

इस डिक्शनरी से जुड़ा वैकल्पिक आईडी. अगर यह मौजूद नहीं है, तो यह एक खाली स्ट्रिंग होनी चाहिए. अगर यह मौजूद है, तो इसे Dictionary-ID हेडर के ज़रिए भेजा जाएगा. अगर सर्वर ने "Use-As-Dictionary" रिस्पॉन्स में कोई आईडी दिया है, तो आपको यह आईडी देना होगा.

रिटर्न
UrlRequest.Builder!

बिल्डर को चेन बनाने में मदद करता है.

setRequestFinishedListener

fun setRequestFinishedListener(listener: RequestFinishedInfo.Listener!): UrlRequest.Builder!

यह एक लिसनर सेट करता है, जो onCanceled(), onFailed() या onSucceeded() के वापस आने के बाद शुरू होता है.

getExecutor() की ओर से दिए गए java.util.concurrent.Executor पर, अनुरोध पूरा होने की जानकारी के साथ लिसनर को चालू किया जाता है.

पैरामीटर
listener: RequestFinishedInfo.Listener!

पूरे हो चुके अनुरोधों के लिए लिसनर.

रिटर्न
UrlRequest.Builder!

बिल्डर को चेन बनाने में मदद करता है.

setTrafficStatsTag

fun setTrafficStatsTag(tag: Int): UrlRequest.Builder!

यह कुकी, android.net.TrafficStats टैग सेट करती है. इसका इस्तेमाल तब किया जाता है, जब इस अनुरोध की वजह से सॉकेट ट्रैफ़िक जनरेट होता है. ज़्यादा जानकारी के लिए, android.net.TrafficStats पर जाएं. अगर कोई टैग सेट नहीं किया जाता है (जैसे, इस तरीके को कॉल नहीं किया जाता है), तो Android, इस अनुरोध की वजह से होने वाले सॉकेट ट्रैफ़िक को इस तरह से हिसाब में लेता है जैसे टैग की वैल्यू 0 पर सेट की गई हो.

ध्यान दें: टैग सेट करने से, अन्य टैग वाले अनुरोधों के साथ सॉकेट शेयर करने की अनुमति नहीं मिलती है. इससे कनेक्शन शेयर करने पर रोक लग जाती है और परफ़ॉर्मेंस पर बुरा असर पड़ सकता है. दूसरे शब्दों में कहें, तो मल्टीप्लेक्स किए गए सॉकेट (जैसे, HTTP/2 और QUIC) का इस्तेमाल सिर्फ़ तब किया जा सकेगा, जब सभी अनुरोधों में एक ही सॉकेट टैग हो.

पैरामीटर
tag: Int

इस अनुरोध की वजह से होने वाले सॉकेट ट्रैफ़िक का हिसाब लगाते समय इस्तेमाल की गई टैग वैल्यू. 0xFFFFFF00 से 0xFFFFFFFF के बीच के टैग रिज़र्व किए जाते हैं. इनका इस्तेमाल सिस्टम की सेवाएं करती हैं. जैसे, android.app.DownloadManager किसी ऐप्लिकेशन की ओर से ट्रैफ़िक जनरेट करते समय.

रिटर्न
UrlRequest.Builder!

बिल्डर को चेन बनाने में मदद करता है.

setTrafficStatsUid

fun setTrafficStatsUid(uid: Int): UrlRequest.Builder!

यह कुकी, इस अनुरोध की वजह से होने वाले सॉकेट ट्रैफ़िक का हिसाब रखते समय इस्तेमाल करने के लिए खास यूआईडी सेट करती है. ज़्यादा जानकारी के लिए android.net.TrafficStats देखें. इसे किसी दूसरे ऐप्लिकेशन की ओर से कोई कार्रवाई करते समय इस्तेमाल करने के लिए डिज़ाइन किया गया है. कॉल करने वाले के पास MODIFY_NETWORK_ACCOUNTING की अनुमति होनी चाहिए. डिफ़ॉल्ट रूप से, ट्रैफ़िक को कॉल करने वाले के यूआईडी के लिए एट्रिब्यूट किया जाता है.

ध्यान दें: यूआईडी सेट करने पर, सॉकेट को अन्य यूआईडी वाले अनुरोधों के साथ शेयर नहीं किया जा सकता. इससे कनेक्शन शेयर करने पर पाबंदी लग जाती है और परफ़ॉर्मेंस पर बुरा असर पड़ सकता है. दूसरे शब्दों में कहें, तो मल्टीप्लेक्स किए गए सॉकेट (जैसे, HTTP/2 और QUIC) का इस्तेमाल सिर्फ़ तब किया जा सकेगा, जब सभी अनुरोधों के लिए एक ही यूआईडी सेट किया गया हो.

पैरामीटर
uid: Int

इस अनुरोध की वजह से होने वाले सॉकेट ट्रैफ़िक के लिए यूआईडी.

रिटर्न
UrlRequest.Builder!

बिल्डर को चेन बनाने में मदद करता है.

setUploadDataProvider

abstract fun setUploadDataProvider(
    uploadDataProvider: UploadDataProvider!,
    executor: Executor!
): UrlRequest.Builder!

यह कुकी, डेटा अपलोड करने की सुविधा देने वाली कंपनी को सेट करती है. अगर इसे साफ़ तौर पर सेट नहीं किया गया है, तो यह "POST" पर स्विच हो जाता है. अगर Content-Type हेडर सेट नहीं है, तो अनुरोध शुरू करने पर एक अपवाद दिखेगा.

पैरामीटर
uploadDataProvider: UploadDataProvider!

डेटा अपलोड करने की ज़िम्मेदारी होती है.

executor: Executor!

uploadDataProvider के सभी तरीकों को इस Executor का इस्तेमाल करके लागू किया जाएगा. यह अनुरोध में इस्तेमाल किए गए Executor के जैसा हो सकता है.

रिटर्न
UrlRequest.Builder!

बिल्डर को चेन बनाने में मदद करता है.