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

অনুরোধের অগ্রাধিকার মাঝারি।

সরকারি নির্মাণকারী

Builder ()

জনসাধারণের পদ্ধতি

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
build ()

এই Builder মধ্যে থাকা কনফিগারেশন ব্যবহার করে একটি UrlRequest তৈরি করে।

abstract UrlRequest.Builder

অনুরোধের জন্য ক্যাশে নিষ্ক্রিয় করে।

abstract UrlRequest.Builder

এই অনুরোধের জন্য ব্যবহৃত HTTP মেথড ভার্ব নির্ধারণ করে।

abstract UrlRequest.Builder
setPriority (int priority)

অনুরোধের অগ্রাধিকার নির্ধারণ করে, যা REQUEST_PRIORITY_* মানগুলোর মধ্যে একটি হওয়া উচিত।

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

এই অনুরোধের জন্য ক্রোনেটকে নির্দিষ্ট কম্প্রেশন ডিকশনারি ব্যবহার করার অনুমতি দেয়।

UrlRequest.Builder

একটি লিসেনার সেট করে যা onCanceled() , onFailed() বা onSucceeded() রিটার্নের পরে কল করা হয়।

UrlRequest.Builder

এই অনুরোধের কারণে সৃষ্ট সকেট ট্র্যাফিকের হিসাব রাখার জন্য android.net.TrafficStats ট্যাগটি সেট করে।

UrlRequest.Builder

এই অনুরোধের কারণে সৃষ্ট সকেট ট্র্যাফিকের হিসাব রাখার জন্য ব্যবহার্য একটি নির্দিষ্ট UID নির্ধারণ করে।

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

আপলোড ডেটা প্রদানকারী নির্ধারণ করে।

ধ্রুবক

অনুরোধের সর্বোচ্চ অগ্রাধিকার

public static final int REQUEST_PRIORITY_HIGHEST = 4

অনুরোধের সর্বোচ্চ অগ্রাধিকার। এটি setPriority তে পাঠানো হয়।

অনুরোধের অগ্রাধিকার নিষ্ক্রিয়

public static final int REQUEST_PRIORITY_IDLE = 0

অনুরোধের সর্বনিম্ন অগ্রাধিকার। এটি setPriority তে পাঠানো হয়।

অনুরোধের অগ্রাধিকার কম

public static final int REQUEST_PRIORITY_LOW = 2

অনুরোধের অগ্রাধিকার কম। এটি setPriority তে পাঠানো হয়েছে।

অনুরোধের অগ্রাধিকার সর্বনিম্ন

public static final int REQUEST_PRIORITY_LOWEST = 1

অনুরোধের অগ্রাধিকার খুব কম। setPriority তে পাঠানো হয়েছে।

অনুরোধের_অগ্রাধিকার_মাঝারি

public static final int REQUEST_PRIORITY_MEDIUM = 3

অনুরোধের মাঝারি অগ্রাধিকার। এটি setPriority তে পাস করা হয়। এটি অনুরোধটিকে দেওয়া ডিফল্ট অগ্রাধিকার।

সরকারি নির্মাণকারী

নির্মাতা

public Builder()

জনসাধারণের পদ্ধতি

হেডার যোগ করুন

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.Listener এর সাথে RequestFinishedInfo এ পাঠানোর জন্য একটি অবজেক্ট।

ফেরত
UrlRequest.Builder

শৃঙ্খলীকরণ সহজ করার জন্য নির্মাতা।

allowDirectExecutor

public abstract UrlRequest.Builder allowDirectExecutor()

এটি নির্দেশ করে যে, এই অনুরোধটি কলব্যাকগুলিকে ( UploadDataProvider এবং UrlRequest.Callback এর জন্য) অবহিত করতে যে এক্সিকিউটরগুলি ব্যবহার করবে, সেগুলি ইচ্ছাকৃতভাবে ইনলাইন এক্সিকিউশন সম্পাদন করছে, যেমন Guava-র directExecutor অথবা java.util.concurrent.ThreadPoolExecutor.CallerRunsPolicy

সতর্কীকরণ: এই অপশনটি ব্যবহার করলে ভুলবশত নেটওয়ার্ক থ্রেড ব্লক হয়ে যেতে পারে। আপনার কলব্যাকগুলো যদি ডিস্ক I/O সম্পাদন করে, লক অর্জন করে, অথবা এমন কোনো কোড কল করে যা আপনি সতর্কতার সাথে নিয়ন্ত্রণ ও নিরীক্ষা করেন না, তবে এটি ব্যবহার করা উচিত নয়।

বাইন্ডটুনেটওয়ার্ক

public UrlRequest.Builder bindToNetwork(long networkHandle)

অনুরোধটিকে নির্দিষ্ট নেটওয়ার্ক হ্যান্ডেলের সাথে সংযুক্ত করে। ক্রোনেট এই অনুরোধটি শুধুমাত্র এই হ্যান্ডেলের সাথে যুক্ত নেটওয়ার্ক ব্যবহার করেই পাঠাবে। যদি এই নেটওয়ার্কটি সংযোগ বিচ্ছিন্ন হয়ে যায়, তবে অনুরোধটি ব্যর্থ হবে; নেটওয়ার্ক সংযোগ বিচ্ছিন্ন হওয়ার সময় অনুরোধ প্রক্রিয়াকরণের কোন পর্যায়ে ত্রুটিটি ঘটবে, তার উপর নির্ভর করবে। Network#getNetworkHandle এর মাধ্যমে নেটওয়ার্ক হ্যান্ডেল পাওয়া যায়। এটি শুধুমাত্র অ্যান্ড্রয়েড মার্শমেলো থেকে উপলব্ধ।

প্যারামিটার
long networkHandle

অনুরোধটি বাইন্ড করার জন্য নেটওয়ার্ক হ্যান্ডেল। আনবাইন্ড করতে UNBIND_NETWORK_HANDLE উল্লেখ করুন।

ফেরত
UrlRequest.Builder

শৃঙ্খলীকরণ সহজ করার জন্য নির্মাতা।

নির্মাণ করুন

public abstract UrlRequest build()

এই Builder মধ্যে কনফিগারেশন ব্যবহার করে একটি UrlRequest তৈরি করে। ফেরত আসা UrlRequest টি এরপর start কল করে চালু করা যায়।

ফেরত
UrlRequest

এই Builder মধ্যে থাকা কনফিগারেশন ব্যবহার করে UrlRequest তৈরি করা হয়েছে।

ক্যাশ নিষ্ক্রিয় করুন

public abstract UrlRequest.Builder disableCache()

অনুরোধের জন্য ক্যাশে নিষ্ক্রিয় করে। যদি কনটেক্সট ক্যাশে ব্যবহারের জন্য সেট আপ করা না থাকে, তাহলে এই কলটির কোনো প্রভাব পড়ে না।

ফেরত
UrlRequest.Builder

শৃঙ্খলীকরণ সহজ করার জন্য নির্মাতা।

setHttpMethod

public abstract UrlRequest.Builder setHttpMethod(String method)

এই অনুরোধের জন্য ব্যবহৃত HTTP মেথড ভার্ব নির্ধারণ করে।

যখন এই মেথডটি কল করা হয় না, তখন রিকোয়েস্টের কোনো বডি না থাকলে ডিফল্টভাবে "GET" হয়, আর বডি থাকলে "POST" হয়।

প্যারামিটার
String method

"GET", "HEAD", "DELETE", "POST" অথবা "PUT"।

ফেরত
UrlRequest.Builder

শৃঙ্খলীকরণ সহজ করার জন্য নির্মাতা।

অগ্রাধিকার নির্ধারণ করুন

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" রেসপন্স হেডারগুলি পরিচালনা করবে না, এর পরিবর্তে এটি এমবেডারের উপর নির্ভর করবে: হয়, সেগুলিকে পরিচালনা করে পরে "Use-As-Dictionary"-এর নিয়মগুলির সাথে মেলে এমন অনুরোধগুলির জন্য UrlRequest.Builder#setCompressionDictionary কল করবে; অথবা, অন্য কোনো আউট-অফ-ব্যান্ড পদ্ধতির মাধ্যমে কম্প্রেশন ডিকশনারিগুলি সংগ্রহ করে পরে UrlRequest.Builder#setCompressionDictionary কল করবে। Cronet ডিকশনারিটিকে শুধুমাত্র এই UrlRequest-এর সাথে মেলে বলে ব্যাখ্যা করবে। যদি উক্ত অনুরোধটি রিডাইরেক্ট করা হয়, এবং এমবেডার সেই রিডাইরেক্ট অনুসরণ করার সিদ্ধান্ত নেয়, তাহলে ডিকশনারিটি নতুন URL-এর সাথেও মিলবে।

প্যারামিটার
byte[] dictionarySha256Hash

নির্দিষ্ট কম্প্রেশন ডিকশনারিটির SHA-256।

ByteBuffer dictionary

এই UrlRequest-এর জন্য Cronet যে কম্প্রেশন ডিকশনারিটি ব্যবহার করতে পারে। এটি অবশ্যই একটি সরাসরি 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

শৃঙ্খলীকরণ সহজ করার জন্য নির্মাতা।

ট্র্যাফিক পরিসংখ্যান ট্যাগ সেট করুন

public UrlRequest.Builder setTrafficStatsTag(int tag)

এই অনুরোধের কারণে সৃষ্ট সকেট ট্র্যাফিকের হিসাব রাখার জন্য android.net.TrafficStats ট্যাগটি সেট করে। আরও তথ্যের জন্য android.net.TrafficStats দেখুন। যদি কোনো ট্যাগ সেট করা না থাকে (যেমন এই মেথডটি কল করা না হলে), তাহলে অ্যান্ড্রয়েড এই অনুরোধের কারণে সৃষ্ট সকেট ট্র্যাফিকের হিসাব এমনভাবে রাখে যেন ট্যাগের মান ০ সেট করা আছে।

দ্রষ্টব্য: একটি ট্যাগ সেট করলে অন্য ট্যাগযুক্ত অনুরোধের সাথে সকেট শেয়ার করা যায় না, যা সংযোগ শেয়ারিং নিষিদ্ধ করার মাধ্যমে পারফরম্যান্সের উপর বিরূপ প্রভাব ফেলতে পারে। অন্য কথায়, মাল্টিপ্লেক্সড সকেট (যেমন HTTP/2 এবং QUIC) ব্যবহার করার অনুমতি কেবল তখনই দেওয়া হবে, যখন সমস্ত অনুরোধের একই সকেট ট্যাগ থাকবে।

প্যারামিটার
int tag

এই অনুরোধের কারণে সৃষ্ট সকেট ট্র্যাফিকের হিসাব রাখার জন্য ব্যবহৃত ট্যাগ মান। 0xFFFFFF00 এবং 0xFFFFFFFF-এর মধ্যবর্তী ট্যাগগুলি সংরক্ষিত এবং কোনো অ্যাপ্লিকেশনের পক্ষ থেকে ট্র্যাফিক পরিচালনা করার সময় android.app.DownloadManager মতো সিস্টেম পরিষেবাগুলি দ্বারা অভ্যন্তরীণভাবে ব্যবহৃত হয়।

ফেরত
UrlRequest.Builder

শৃঙ্খলীকরণ সহজ করার জন্য নির্মাতা।

setTrafficStatsUid

public UrlRequest.Builder setTrafficStatsUid(int uid)

এই অনুরোধের কারণে সৃষ্ট সকেট ট্র্যাফিকের হিসাব রাখার জন্য একটি নির্দিষ্ট UID নির্ধারণ করে। আরও তথ্যের জন্য android.net.TrafficStats দেখুন। অন্য কোনো অ্যাপ্লিকেশনের পক্ষ থেকে কোনো অপারেশন সম্পাদন করার সময় ব্যবহারের জন্য এটি ডিজাইন করা হয়েছে। কলারের অবশ্যই MODIFY_NETWORK_ACCOUNTING পারমিশন থাকতে হবে। ডিফল্টরূপে, ট্র্যাফিক কলারের UID-এর অধীনে আরোপিত হয়।

দ্রষ্টব্য: একটি UID সেট করলে অন্য UID-যুক্ত অনুরোধের সাথে সকেট শেয়ার করা যায় না, যা সংযোগ শেয়ারিং নিষিদ্ধ করার মাধ্যমে পারফরম্যান্সের উপর বিরূপ প্রভাব ফেলতে পারে। অন্য কথায়, মাল্টিপ্লেক্সড সকেট (যেমন HTTP/2 এবং QUIC) ব্যবহার করার অনুমতি কেবল তখনই দেওয়া হবে, যখন সমস্ত অনুরোধে একই UID সেট করা থাকবে।

প্যারামিটার
int uid

এই অনুরোধের কারণে সৃষ্ট সকেট ট্র্যাফিক চিহ্নিত করার জন্য UID।

ফেরত
UrlRequest.Builder

শৃঙ্খলীকরণ সহজ করার জন্য নির্মাতা।

সেটআপআপলোডডেটাপ্রোভাইডার

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

আপলোড ডেটা প্রোভাইডার সেট করে। স্পষ্টভাবে সেট করা না থাকলে মেথডটি "POST"-এ পরিবর্তন করে। Content-Type হেডার সেট করা না থাকলে রিকোয়েস্ট শুরু করার সময় একটি এক্সেপশন থ্রো হবে।

প্যারামিটার
UploadDataProvider uploadDataProvider

আপলোড ডেটা প্রদানের দায়িত্বে নিয়োজিত।

Executor executor

সমস্ত uploadDataProvider মেথড এই Executor ব্যবহার করে কল করা হবে। এটি ঐচ্ছিকভাবে সেই Executor ই হতে পারে যা অনুরোধটি নিজে ব্যবহার করছে।

ফেরত
UrlRequest.Builder

শৃঙ্খলীকরণ সহজ করার জন্য নির্মাতা।