UrlRequest.Builder

abstract class UrlRequest.Builder


UrlRequest এর জন্য বিল্ডার। এটি build ব্যবহার করে রিকোয়েস্ট তৈরি করার আগে সেগুলোকে কনফিগার করার সুযোগ দেয়। newUrlRequestBuilder কল করে এই বিল্ডারটি তৈরি করা যায়।

সারসংক্ষেপ

ধ্রুবক

const Int

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

const Int

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

const Int

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

const Int

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

const Int

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

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

Builder ()

জনসাধারণের কার্যাবলী

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

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

abstract UrlRequest.Builder !

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

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

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

abstract UrlRequest.Builder !
setPriority (priority: Int )

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

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

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

UrlRequest.Builder !

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

UrlRequest.Builder !

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

UrlRequest.Builder !

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

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

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

ধ্রুবক

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

const val REQUEST_PRIORITY_HIGHEST = 4: Int

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

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

const val REQUEST_PRIORITY_IDLE = 0: Int

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

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

const val REQUEST_PRIORITY_LOW = 2: Int

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

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

const val REQUEST_PRIORITY_LOWEST = 1: Int

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

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

const val REQUEST_PRIORITY_MEDIUM = 3: Int

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

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

নির্মাতা

Builder()

জনসাধারণের কার্যাবলী

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

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

ফেরত
UrlRequest.Builder !

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

allowDirectExecutor

abstract fun allowDirectExecutor(): UrlRequest.Builder!

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

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

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

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

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

প্যারামিটার
networkHandle: Long

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

ফেরত
UrlRequest.Builder !

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

নির্মাণ করুন

abstract fun build(): UrlRequest!

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

ফেরত
UrlRequest !

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

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

abstract fun disableCache(): UrlRequest.Builder!

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

ফেরত
UrlRequest.Builder !

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

setHttpMethod

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

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

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

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

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

ফেরত
UrlRequest.Builder !

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

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

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

প্যারামিটার
dictionarySha256Hash: ByteArray !

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

dictionary: ByteBuffer !

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

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

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

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

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

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

প্যারামিটার
tag: Int

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

ফেরত
UrlRequest.Builder !

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

setTrafficStatsUid

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

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

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

প্যারামিটার
uid: Int

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

ফেরত
UrlRequest.Builder !

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

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

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

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

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

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

executor: Executor !

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

ফেরত
UrlRequest.Builder !

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