سازنده درخواست آدرس

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 ) استفاده خواهد کرد، عمداً اجرای درون‌خطی انجام می‌دهند، مانند directExecutor یا java.util.concurrent.ThreadPoolExecutor.CallerRunsPolicy در Guava.

UrlRequest.Builder !
bindToNetwork (networkHandle: Long )

درخواست را به شناسه شبکه مشخص شده متصل می‌کند.

abstract UrlRequest !
build ()

با استفاده از پیکربندی درون این Builder یک UrlRequest ایجاد می‌کند.

abstract UrlRequest.Builder !

حافظه پنهان (cache) را برای درخواست غیرفعال می‌کند.

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

به Cronet اجازه می‌دهد تا از دیکشنری فشرده‌سازی مشخص‌شده برای این درخواست استفاده کند.

UrlRequest.Builder !

یک شنونده (listener) تنظیم می‌کند که پس از بازگشت 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 !

سازنده برای تسهیل زنجیره‌سازی.

حاشیه‌نویسی درخواست اضافه

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

شیء annotation را با این درخواست مرتبط می‌کند. می‌تواند بیش از یک مورد اضافه کند. به RequestFinishedInfo.Listener ارسال می‌شود، getAnnotations مراجعه کنید.

پارامترها
annotation: Any !

یک شیء برای ارسال به RequestFinishedInfo.Listener با RequestFinishedInfo .

بازگشت‌ها
UrlRequest.Builder !

سازنده برای تسهیل زنجیره‌سازی.

allowDirectExecutor

abstract fun allowDirectExecutor(): UrlRequest.Builder!

علامت‌گذاری می‌کند که اجراکننده‌هایی که این درخواست برای اطلاع‌رسانی به فراخوانی‌های برگشتی (برای UploadDataProvider و UrlRequest.Callback ) استفاده خواهد کرد، عمداً اجرای درون‌خطی انجام می‌دهند، مانند directExecutor یا java.util.concurrent.ThreadPoolExecutor.CallerRunsPolicy در Guava.

هشدار: این گزینه باعث می‌شود که به راحتی بتوان به طور تصادفی thread شبکه را مسدود کرد. اگر callback های شما ورودی/خروجی دیسک را انجام می‌دهند، قفل‌هایی را ایجاد می‌کنند یا کد دیگری را که به دقت کنترل و حسابرسی نمی‌کنید، فراخوانی می‌کنند، نباید از این گزینه استفاده شود.

bindToNetwork

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

درخواست را به شناسه شبکه مشخص شده متصل می‌کند. Cronet این درخواست را فقط با استفاده از شبکه مرتبط با این شناسه ارسال می‌کند. اگر این شبکه قطع شود، درخواست با شکست مواجه می‌شود، خطای دقیق به مرحله پردازش درخواست هنگام قطع شبکه بستگی دارد. شناسه‌های شبکه را می‌توان از طریق Network#getNetworkHandle دریافت کرد. فقط از اندروید مارشمالو به بعد در دسترس است.

پارامترها
networkHandle: Long

شناسه شبکه‌ای که درخواست به آن متصل می‌شود. برای لغو اتصال، UNBIND_NETWORK_HANDLE را مشخص کنید.

بازگشت‌ها
UrlRequest.Builder !

سازنده برای تسهیل زنجیره‌سازی.

ساختن

abstract fun build(): UrlRequest!

با استفاده از پیکربندی درون این Builder یک UrlRequest ایجاد می‌کند. UrlRequest برگردانده شده سپس می‌تواند با فراخوانی start آغاز شود.

بازگشت‌ها
UrlRequest !

UrlRequest با استفاده از پیکربندی درون این Builder ساخته است.

غیرفعال کردن حافظه پنهان

abstract fun disableCache(): UrlRequest.Builder!

حافظه پنهان (cache) را برای درخواست غیرفعال می‌کند. اگر context برای استفاده از حافظه پنهان (cache) تنظیم نشده باشد، این فراخوانی هیچ تاثیری نخواهد داشت.

بازگشت‌ها
UrlRequest.Builder !

سازنده برای تسهیل زنجیره‌سازی.

متد setHttp

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

فعل متد HTTP مورد استفاده برای این درخواست را تنظیم می‌کند.

مقدار پیش‌فرض در مواقعی که این متد فراخوانی نمی‌شود، اگر درخواست بدنه نداشته باشد، "GET" و در صورت داشتن بدنه، "POST" است.

پارامترها
method: String !

«دریافت»، «هد»، «حذف»، «پست» یا «قرار دادن».

بازگشت‌ها
UrlRequest.Builder !

سازنده برای تسهیل زنجیره‌سازی.

اولویت را تنظیم کنید

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

اولویت درخواست را که باید یکی از مقادیر REQUEST_PRIORITY_* باشد، تنظیم می‌کند. در صورت عدم فراخوانی این متد، اولویت REQUEST_PRIORITY_MEDIUM به درخواست داده می‌شود.

پارامترها
priority: Int

اولویت درخواست که باید یکی از مقادیر REQUEST_PRIORITY_* باشد.

بازگشت‌ها
UrlRequest.Builder !

سازنده برای تسهیل زنجیره‌سازی.

دیکشنری فشرده‌سازی setRaw

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

به Cronet اجازه می‌دهد تا از دیکشنری فشرده‌سازی مشخص‌شده برای این درخواست استفاده کند. در صورت مشخص شدن، Cronet ممکن است به سرور، وجود دیکشنری فشرده‌سازی مذکور را اطلاع دهد. برای اینکه این امر مؤثر باشد، CronetEngine که این درخواست را اجرا می‌کند، باید طوری پیکربندی شده باشد که یک طرح فشرده‌سازی را که از دیکشنری‌های خارجی پشتیبانی می‌کند، فعال کند. این امر تا حدی draft-ietf-httpbis-compression-dictionary را در Cronet پیاده‌سازی می‌کند. Cronet مستقیماً هدرهای پاسخ "Use-As-Dictionary" را مدیریت نمی‌کند، در عوض به embedder متکی خواهد بود تا: یا آنها را مدیریت کند و بعداً UrlRequest.Builder#setCompressionDictionary را برای درخواست‌هایی که با قوانین Use-As-Dictionary مطابقت دارند، فراخوانی کند؛ یا دیکشنری‌های فشرده‌سازی را از طریق مکانیسم خارج از باند دیگری دریافت کند و بعداً UrlRequest.Builder#setCompressionDictionary را فراخوانی کند. Cronet دیکشنری را طوری تفسیر می‌کند که فقط با این UrlRequest مطابقت داشته باشد. اگر درخواست مذکور هدایت شود و embedder تصمیم به دنبال کردن این هدایت بگیرد، دیکشنری با URL جدید نیز مطابقت خواهد داشت.

پارامترها
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!

یک شنونده (listener) تنظیم می‌کند که پس از بازگشت onCanceled() ، onFailed() یا onSucceeded() فراخوانی می‌شود.

شنونده با اطلاعات تکمیل‌شده‌ی درخواست روی یک java.util.concurrent.Executor ارائه شده توسط getExecutor() فراخوانی می‌شود.

پارامترها
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 !

سازنده برای تسهیل زنجیره‌سازی.

ارائه دهنده داده setUpload

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

ارائه دهنده داده آپلود را تنظیم می‌کند. اگر به صراحت تنظیم نشده باشد، متد را به "POST" تغییر می‌دهد. اگر هدر Content-Type تنظیم نشده باشد، شروع درخواست یک استثنا ایجاد می‌کند.

پارامترها
uploadDataProvider: UploadDataProvider !

مسئول ارائه داده‌های آپلود.

executor: Executor !

تمام متدهای uploadDataProvider با استفاده از این Executor فراخوانی می‌شوند. به صورت اختیاری، می‌تواند همان Executor باشد که خود درخواست از آن استفاده می‌کند.

بازگشت‌ها
UrlRequest.Builder !

سازنده برای تسهیل زنجیره‌سازی.