UrlRequest.Builder

abstract class UrlRequest.Builder


Trình tạo cho UrlRequest. Cho phép định cấu hình các yêu cầu trước khi tạo các yêu cầu đó bằng build. Bạn có thể tạo trình tạo bằng cách gọi newUrlRequestBuilder.

Tóm tắt

Hằng số

const Int

Mức độ ưu tiên cao nhất của yêu cầu.

const Int

Mức độ ưu tiên thấp nhất của yêu cầu.

const Int

Mức độ ưu tiên thấp của yêu cầu.

const Int

Mức độ ưu tiên yêu cầu rất thấp.

const Int

Mức độ ưu tiên yêu cầu ở mức trung bình.

Hàm khởi tạo công khai

Hàm công khai

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

Thêm tiêu đề của yêu cầu.

UrlRequest.Builder!
addRequestAnnotation(annotation: Any!)

Liên kết đối tượng chú thích với yêu cầu này.

abstract UrlRequest.Builder!

Đánh dấu rằng các trình thực thi mà yêu cầu này sẽ dùng để thông báo cho các lệnh gọi lại (đối với UploadDataProviderUrlRequest.Callback) đang cố ý thực hiện việc thực thi nội tuyến, chẳng hạn như directExecutor của Guava hoặc java.util.concurrent.ThreadPoolExecutor.CallerRunsPolicy.

UrlRequest.Builder!
bindToNetwork(networkHandle: Long)

Liên kết yêu cầu với mã nhận dạng mạng đã chỉ định.

abstract UrlRequest!

Tạo một UrlRequest bằng cấu hình trong Builder này.

abstract UrlRequest.Builder!

Tắt bộ nhớ đệm cho yêu cầu.

abstract UrlRequest.Builder!

Đặt động từ phương thức HTTP để dùng cho yêu cầu này.

abstract UrlRequest.Builder!
setPriority(priority: Int)

Đặt mức độ ưu tiên của yêu cầu. Đây phải là một trong các giá trị REQUEST_PRIORITY_*.

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

Cho phép Cronet sử dụng từ điển nén được chỉ định cho yêu cầu này.

UrlRequest.Builder!

Đặt một trình nghe được gọi sau khi onCanceled(), onFailed() hoặc onSucceeded() trả về.

UrlRequest.Builder!

Đặt thẻ android.net.TrafficStats để sử dụng khi tính lưu lượng truy cập socket do yêu cầu này gây ra.

UrlRequest.Builder!

Đặt UID cụ thể để sử dụng khi tính lưu lượng truy cập ổ cắm do yêu cầu này gây ra.

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

Đặt nhà cung cấp dữ liệu tải lên.

Hằng số

REQUEST_PRIORITY_HIGHEST

const val REQUEST_PRIORITY_HIGHEST = 4: Int

Mức độ ưu tiên cao nhất của yêu cầu. Đã chuyển đến setPriority.

REQUEST_PRIORITY_IDLE

const val REQUEST_PRIORITY_IDLE = 0: Int

Mức độ ưu tiên thấp nhất của yêu cầu. Đã chuyển đến setPriority.

REQUEST_PRIORITY_LOW

const val REQUEST_PRIORITY_LOW = 2: Int

Mức độ ưu tiên thấp của yêu cầu. Đã chuyển đến setPriority.

REQUEST_PRIORITY_LOWEST

const val REQUEST_PRIORITY_LOWEST = 1: Int

Mức độ ưu tiên yêu cầu rất thấp. Đã chuyển đến setPriority.

REQUEST_PRIORITY_MEDIUM

const val REQUEST_PRIORITY_MEDIUM = 3: Int

Mức độ ưu tiên yêu cầu ở mức trung bình. Đã chuyển đến setPriority. Đây là mức độ ưu tiên mặc định được chỉ định cho yêu cầu.

Hàm khởi tạo công khai

Trình tạo

Builder()

Hàm công khai

addHeader

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

Thêm tiêu đề của yêu cầu.

Tham số
header: String!

tên tiêu đề.

value: String!

giá trị tiêu đề.

Giá trị trả về
UrlRequest.Builder!

trình tạo để tạo điều kiện cho việc liên kết.

addRequestAnnotation

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

Liên kết đối tượng chú thích với yêu cầu này. Bạn có thể thêm nhiều. Được truyền đến RequestFinishedInfo.Listener, hãy xem getAnnotations.

Tham số
annotation: Any!

một đối tượng để truyền đến RequestFinishedInfo.Listener bằng RequestFinishedInfo.

Giá trị trả về
UrlRequest.Builder!

trình tạo để tạo điều kiện cho việc liên kết.

allowDirectExecutor

abstract fun allowDirectExecutor(): UrlRequest.Builder!

Đánh dấu rằng các trình thực thi mà yêu cầu này sẽ dùng để thông báo cho các lệnh gọi lại (đối với UploadDataProviderUrlRequest.Callback) đang cố ý thực hiện việc thực thi nội tuyến, chẳng hạn như directExecutor của Guava hoặc java.util.concurrent.ThreadPoolExecutor.CallerRunsPolicy.

Cảnh báo: Tuỳ chọn này khiến bạn dễ vô tình chặn luồng mạng. Bạn không nên sử dụng phương thức này nếu các lệnh gọi lại của bạn thực hiện thao tác I/O trên đĩa, lấy khoá hoặc gọi vào mã khác mà bạn không kiểm soát và kiểm tra cẩn thận.

bindToNetwork

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

Liên kết yêu cầu với mã nhận dạng mạng đã chỉ định. Cronet sẽ chỉ gửi yêu cầu này bằng mạng được liên kết với mã nhận dạng này. Nếu mạng này ngắt kết nối, yêu cầu sẽ không thành công. Lỗi chính xác sẽ phụ thuộc vào giai đoạn xử lý yêu cầu khi mạng ngắt kết nối. Bạn có thể lấy các mã nhận dạng mạng thông qua Network#getNetworkHandle. Chỉ có từ Android Marshmallow trở lên.

Tham số
networkHandle: Long

xử lý mạng để liên kết yêu cầu. Chỉ định UNBIND_NETWORK_HANDLE để huỷ liên kết.

Giá trị trả về
UrlRequest.Builder!

trình tạo để tạo điều kiện cho việc liên kết.

build

abstract fun build(): UrlRequest!

Tạo một UrlRequest bằng cấu hình trong Builder này. Sau đó, bạn có thể bắt đầu UrlRequest đã trả về bằng cách gọi start.

Giá trị trả về
UrlRequest!

được tạo UrlRequest bằng cấu hình trong Builder này.

disableCache

abstract fun disableCache(): UrlRequest.Builder!

Tắt bộ nhớ đệm cho yêu cầu. Nếu bạn không thiết lập bối cảnh để sử dụng bộ nhớ đệm, thì lệnh gọi này sẽ không có hiệu lực.

Giá trị trả về
UrlRequest.Builder!

trình tạo để tạo điều kiện cho việc liên kết.

setHttpMethod

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

Đặt động từ phương thức HTTP để dùng cho yêu cầu này.

Giá trị mặc định khi phương thức này không được gọi là "GET" nếu yêu cầu không có nội dung hoặc "POST" nếu có.

Tham số
method: String!

"GET", "HEAD", "DELETE", "POST" hoặc "PUT".

Giá trị trả về
UrlRequest.Builder!

trình tạo để tạo điều kiện cho việc liên kết.

setPriority

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

Đặt mức độ ưu tiên của yêu cầu. Đây phải là một trong các giá trị REQUEST_PRIORITY_*. Yêu cầu được ưu tiên REQUEST_PRIORITY_MEDIUM nếu bạn không gọi phương thức này.

Tham số
priority: Int

mức độ ưu tiên của yêu cầu, phải là một trong các giá trị REQUEST_PRIORITY_*.

Giá trị trả về
UrlRequest.Builder!

trình tạo để tạo điều kiện cho việc liên kết.

setRawCompressionDictionary

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

Cho phép Cronet sử dụng từ điển nén được chỉ định cho yêu cầu này. Khi được chỉ định, Cronet có thể báo hiệu cho máy chủ về tính khả dụng của từ điển nén nói trên. Để có hiệu lực, CronetEngine sẽ thực thi yêu cầu này phải được định cấu hình để bật một lược đồ nén hỗ trợ từ điển bên ngoài. Điều này giúp triển khai một phần draft-ietf-httpbis-compression-dictionary trong Cronet. Cronet sẽ không trực tiếp xử lý tiêu đề phản hồi "Use-As-Dictionary", thay vào đó, Cronet sẽ dựa vào trình nhúng để: xử lý các tiêu đề đó rồi gọi UrlRequest.Builder#setCompressionDictionary cho các yêu cầu khớp với quy tắc của Use-As-Dictionary; hoặc tìm nạp từ điển nén thông qua một số cơ chế ngoài băng tần khác, rồi gọi UrlRequest.Builder#setCompressionDictionary. Cronet sẽ diễn giải từ điển này là chỉ khớp với UrlRequest này. Nếu yêu cầu đó được chuyển hướng và trình nhúng quyết định tuân theo lệnh chuyển hướng, thì từ điển cũng sẽ khớp với URL mới.

Tham số
dictionarySha256Hash: ByteArray!

SHA-256 của từ điển nén được chỉ định.

dictionary: ByteBuffer!

từ điển nén mà Cronet có thể dùng cho UrlRequest này. Đây phải là một ByteBuffer trực tiếp.

dictionaryId: String!

mã nhận dạng không bắt buộc được liên kết với từ điển này, phải là một chuỗi trống nếu bị thiếu. Nếu có, thông tin này sẽ được gửi qua tiêu đề Dictionary-ID. Bạn cần chỉ định mã nhận dạng này nếu máy chủ chỉ định một mã nhận dạng trong phản hồi "Use-As-Dictionary".

Giá trị trả về
UrlRequest.Builder!

trình tạo để tạo điều kiện cho việc liên kết.

setRequestFinishedListener

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

Đặt một trình nghe được gọi sau khi onCanceled(), onFailed() hoặc onSucceeded() trả về.

Trình nghe được gọi cùng với thông tin đã hoàn tất yêu cầu trên một java.util.concurrent.Executor do getExecutor() cung cấp.

Tham số
listener: RequestFinishedInfo.Listener!

trình nghe cho các yêu cầu đã hoàn tất.

Giá trị trả về
UrlRequest.Builder!

trình tạo để tạo điều kiện cho việc liên kết.

setTrafficStatsTag

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

Đặt thẻ android.net.TrafficStats để sử dụng khi tính lưu lượng truy cập socket do yêu cầu này gây ra. Hãy xem android.net.TrafficStats để biết thêm thông tin. Nếu không có thẻ nào được đặt (ví dụ: phương thức này không được gọi), thì Android sẽ tính lưu lượng truy cập ổ cắm do yêu cầu này gây ra như thể giá trị thẻ được đặt thành 0.

LƯU Ý: Việc đặt thẻ sẽ không cho phép chia sẻ các ổ cắm với các yêu cầu có thẻ khác, điều này có thể ảnh hưởng xấu đến hiệu suất bằng cách cấm chia sẻ kết nối. Nói cách khác, bạn chỉ được phép sử dụng các ổ cắm ghép kênh (ví dụ: HTTP/2 và QUIC) nếu tất cả các yêu cầu đều có cùng thẻ ổ cắm.

Tham số
tag: Int

giá trị thẻ được dùng khi tính lưu lượng truy cập ổ cắm do yêu cầu này gây ra. Các thẻ từ 0xFFFFFF00 đến 0xFFFFFFFF được dành riêng và dùng nội bộ bởi các dịch vụ hệ thống như android.app.DownloadManager khi thực hiện lưu lượng truy cập thay cho một ứng dụng.

Giá trị trả về
UrlRequest.Builder!

trình tạo để tạo điều kiện cho việc liên kết.

setTrafficStatsUid

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

Đặt UID cụ thể để sử dụng khi tính lưu lượng truy cập ổ cắm do yêu cầu này gây ra. Vui lòng xem android.net.TrafficStats để biết thêm thông tin. Được thiết kế để sử dụng khi thực hiện một thao tác thay cho một ứng dụng khác. Người gọi phải có quyền MODIFY_NETWORK_ACCOUNTING. Theo mặc định, lưu lượng truy cập được phân bổ cho UID của người gọi.

LƯU Ý: Việc đặt UID sẽ không cho phép chia sẻ các ổ cắm với các yêu cầu có UID khác, điều này có thể ảnh hưởng xấu đến hiệu suất bằng cách cấm chia sẻ kết nối. Nói cách khác, bạn chỉ được phép sử dụng các socket ghép kênh (ví dụ: HTTP/2 và QUIC) nếu tất cả các yêu cầu đều có cùng một UID.

Tham số
uid: Int

UID để phân bổ lưu lượng truy cập socket do yêu cầu này gây ra.

Giá trị trả về
UrlRequest.Builder!

trình tạo để tạo điều kiện cho việc liên kết.

setUploadDataProvider

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

Đặt nhà cung cấp dữ liệu tải lên. Chuyển phương thức thành "POST" nếu không được đặt rõ ràng. Việc bắt đầu yêu cầu sẽ gây ra một ngoại lệ nếu tiêu đề Content-Type không được đặt.

Tham số
uploadDataProvider: UploadDataProvider!

chịu trách nhiệm cung cấp dữ liệu tải lên.

executor: Executor!

Tất cả các phương thức uploadDataProvider sẽ được gọi bằng Executor này. Có thể là cùng một Executor mà chính yêu cầu đang sử dụng (không bắt buộc).

Giá trị trả về
UrlRequest.Builder!

trình tạo để tạo điều kiện cho việc liên kết.