UrlRequest.Builder

public 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ố

static final int

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

static final int

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

static final int

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

static final int

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

static final int

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

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

Phương thức công khai

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

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

UrlRequest.Builder

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(long networkHandle)

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(int priority)

Đặ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(
    byte[] dictionarySha256Hash,
    ByteBuffer dictionary,
    String dictionaryId
)

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

public static final int REQUEST_PRIORITY_HIGHEST = 4

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

REQUEST_PRIORITY_IDLE

public static final int REQUEST_PRIORITY_IDLE = 0

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

REQUEST_PRIORITY_LOW

public static final int REQUEST_PRIORITY_LOW = 2

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

REQUEST_PRIORITY_LOWEST

public static final int REQUEST_PRIORITY_LOWEST = 1

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

REQUEST_PRIORITY_MEDIUM

public static final int REQUEST_PRIORITY_MEDIUM = 3

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

public Builder()

Phương thức công khai

addHeader

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

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

Tham số
String header

tên tiêu đề.

String value

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

public UrlRequest.Builder addRequestAnnotation(Object annotation)

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ố
Object annotation

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

public abstract UrlRequest.Builder allowDirectExecutor()

Đá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

public UrlRequest.Builder bindToNetwork(long networkHandle)

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ố
long networkHandle

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

public abstract UrlRequest build()

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

public abstract UrlRequest.Builder disableCache()

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

public abstract UrlRequest.Builder setHttpMethod(String method)

Đặ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ố
String method

"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

public abstract UrlRequest.Builder setPriority(int priority)

Đặ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ố
int priority

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
public UrlRequest.Builder setRawCompressionDictionary(
    byte[] dictionarySha256Hash,
    ByteBuffer dictionary,
    String dictionaryId
)

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ố
byte[] dictionarySha256Hash

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

ByteBuffer dictionary

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.

String dictionaryId

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

public UrlRequest.Builder setRequestFinishedListener(RequestFinishedInfo.Listener listener)

Đặ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ố
RequestFinishedInfo.Listener 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

public UrlRequest.Builder setTrafficStatsTag(int tag)

Đặ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ố
int tag

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

public UrlRequest.Builder setTrafficStatsUid(int uid)

Đặ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ố
int uid

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

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

Đặ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.