UrlRequest.Builder

public abstract class UrlRequest.Builder


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

खास जानकारी

कॉन्स्टेंट

static final int

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

static final int

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

static final int

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

static final int

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

static final int

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

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

पब्लिक मेथड

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

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

UrlRequest.Builder

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

abstract UrlRequest.Builder

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

UrlRequest.Builder
bindToNetwork(long networkHandle)

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

abstract UrlRequest

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

abstract UrlRequest.Builder

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

abstract UrlRequest.Builder

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

abstract UrlRequest.Builder
setPriority(int priority)

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

UrlRequest.Builder
@UrlRequest.Experimental
setRawCompressionDictionary(
    byte[] dictionarySha256Hash,
    ByteBuffer dictionary,
    String dictionaryId
)

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

UrlRequest.Builder

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

UrlRequest.Builder

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

UrlRequest.Builder

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

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

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

कॉन्स्टेंट

REQUEST_PRIORITY_HIGHEST

public static final int REQUEST_PRIORITY_HIGHEST = 4

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

REQUEST_PRIORITY_IDLE

public static final int REQUEST_PRIORITY_IDLE = 0

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

REQUEST_PRIORITY_LOW

public static final int REQUEST_PRIORITY_LOW = 2

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

REQUEST_PRIORITY_LOWEST

public static final int REQUEST_PRIORITY_LOWEST = 1

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

REQUEST_PRIORITY_MEDIUM

public static final int REQUEST_PRIORITY_MEDIUM = 3

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

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

बिल्डर

public Builder()

पब्लिक मेथड

addHeader

public abstract UrlRequest.Builder addHeader(String header, String value)

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

पैरामीटर
String header

हेडर का नाम.

String value

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

रिटर्न
UrlRequest.Builder

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

addRequestAnnotation

public UrlRequest.Builder addRequestAnnotation(Object annotation)

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

पैरामीटर
Object annotation

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

रिटर्न
UrlRequest.Builder

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

allowDirectExecutor

public abstract UrlRequest.Builder allowDirectExecutor()

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

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

bindToNetwork

public UrlRequest.Builder bindToNetwork(long networkHandle)

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

पैरामीटर
long networkHandle

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

रिटर्न
UrlRequest.Builder

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

बनाएं

public abstract UrlRequest build()

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

रिटर्न
UrlRequest

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

disableCache

public abstract UrlRequest.Builder disableCache()

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

रिटर्न
UrlRequest.Builder

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

setHttpMethod

public abstract UrlRequest.Builder setHttpMethod(String method)

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

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

पैरामीटर
String method

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

रिटर्न
UrlRequest.Builder

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

setPriority

public abstract UrlRequest.Builder setPriority(int priority)

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

पैरामीटर
int priority

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

रिटर्न
UrlRequest.Builder

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

setRawCompressionDictionary

@UrlRequest.Experimental
public UrlRequest.Builder setRawCompressionDictionary(
    byte[] dictionarySha256Hash,
    ByteBuffer dictionary,
    String dictionaryId
)

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

पैरामीटर
byte[] dictionarySha256Hash

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

ByteBuffer dictionary

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

String dictionaryId

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

रिटर्न
UrlRequest.Builder

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

setRequestFinishedListener

public UrlRequest.Builder setRequestFinishedListener(RequestFinishedInfo.Listener listener)

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

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

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

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

रिटर्न
UrlRequest.Builder

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

setTrafficStatsTag

public UrlRequest.Builder setTrafficStatsTag(int tag)

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

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

पैरामीटर
int tag

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

रिटर्न
UrlRequest.Builder

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

setTrafficStatsUid

public UrlRequest.Builder setTrafficStatsUid(int uid)

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

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

पैरामीटर
int uid

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

रिटर्न
UrlRequest.Builder

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

setUploadDataProvider

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

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

पैरामीटर
UploadDataProvider uploadDataProvider

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

Executor executor

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

रिटर्न
UrlRequest.Builder

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