UrlRequest.Builder

abstract class UrlRequest.Builder


ผู้รับสร้างบ้านสำหรับ UrlRequest อนุญาตให้กำหนดค่าคำขอก่อนสร้างด้วย build คุณสร้างเครื่องมือสร้างได้โดยการเรียกใช้ newUrlRequestBuilder

สรุป

ค่าคงที่

const Int

ลำดับความสำคัญของคำขอสูงสุด

const Int

ลำดับความสำคัญของคำขอต่ำสุด

const Int

ลำดับความสำคัญของคำขอต่ำ

const Int

ลำดับความสำคัญของคำขอต่ำมาก

const Int

ลำดับความสำคัญของคำขอระดับปานกลาง

เครื่องมือสร้างสาธารณะ

ฟังก์ชันสาธารณะ

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

เพิ่มส่วนหัวของคำขอ

UrlRequest.Builder!
addRequestAnnotation(annotation: Any!)

เชื่อมโยงออบเจ็กต์คำอธิบายประกอบกับคำขอนี้

abstract UrlRequest.Builder!

เครื่องหมายที่ผู้ดำเนินการคำขอนี้จะใช้เพื่อแจ้งเตือนการเรียกกลับ (สำหรับ UploadDataProvider และ UrlRequest.Callback) จะดำเนินการแบบอินไลน์โดยเจตนา เช่น directExecutor ของ Guava หรือ java.util.concurrent.ThreadPoolExecutor.CallerRunsPolicy

UrlRequest.Builder!
bindToNetwork(networkHandle: Long)

เชื่อมโยงคำขอกับแฮนเดิลเครือข่ายที่ระบุ

abstract UrlRequest!

สร้าง UrlRequest โดยใช้การกำหนดค่าภายใน Builder นี้

abstract UrlRequest.Builder!

ปิดใช้แคชสำหรับคำขอ

abstract UrlRequest.Builder!

ตั้งค่าคำกริยาของเมธอด 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!
)

ตั้งค่าผู้ให้บริการข้อมูลการอัปโหลด

ค่าคงที่

REQUEST_PRIORITY_HIGHEST

const val REQUEST_PRIORITY_HIGHEST = 4: Int

ลำดับความสำคัญของคำขอสูงสุด ส่งต่อให้ setPriority แล้ว

REQUEST_PRIORITY_IDLE

const val REQUEST_PRIORITY_IDLE = 0: Int

ลำดับความสำคัญของคำขอต่ำสุด ส่งต่อให้ setPriority แล้ว

REQUEST_PRIORITY_LOW

const val REQUEST_PRIORITY_LOW = 2: Int

ลำดับความสำคัญของคำขอต่ำ ส่งต่อให้ setPriority แล้ว

REQUEST_PRIORITY_LOWEST

const val REQUEST_PRIORITY_LOWEST = 1: Int

ลำดับความสำคัญของคำขอต่ำมาก ส่งต่อให้ setPriority แล้ว

REQUEST_PRIORITY_MEDIUM

const val REQUEST_PRIORITY_MEDIUM = 3: Int

ลำดับความสำคัญของคำขอระดับปานกลาง ส่งต่อให้ setPriority แล้ว นี่คือลำดับความสำคัญเริ่มต้นที่กำหนดให้กับคำขอ

เครื่องมือสร้างสาธารณะ

Builder

Builder()

ฟังก์ชันสาธารณะ

addHeader

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

เพิ่มส่วนหัวของคำขอ

พารามิเตอร์
header: String!

ชื่อส่วนหัว

value: String!

ค่าของส่วนหัว

การคืนสินค้า
UrlRequest.Builder!

เครื่องมือสร้างเพื่ออำนวยความสะดวกในการเชื่อมโยง

addRequestAnnotation

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

เชื่อมโยงออบเจ็กต์คำอธิบายประกอบกับคำขอนี้ อาจเพิ่มได้มากกว่า 1 รายการ ส่งต่อไปยัง RequestFinishedInfo.Listener โปรดดู getAnnotations

พารามิเตอร์
annotation: Any!

ออบเจ็กต์ที่จะส่งไปยัง RequestFinishedInfo.Listener ด้วย RequestFinishedInfo

การคืนสินค้า
UrlRequest.Builder!

เครื่องมือสร้างเพื่ออำนวยความสะดวกในการเชื่อมโยง

allowDirectExecutor

abstract fun allowDirectExecutor(): UrlRequest.Builder!

เครื่องหมายที่ผู้ดำเนินการคำขอนี้จะใช้เพื่อแจ้งเตือนการเรียกกลับ (สำหรับ UploadDataProvider และ UrlRequest.Callback) จะดำเนินการแบบอินไลน์โดยเจตนา เช่น directExecutor ของ Guava หรือ java.util.concurrent.ThreadPoolExecutor.CallerRunsPolicy

คำเตือน: ตัวเลือกนี้อาจทำให้บล็อกเธรดเครือข่ายโดยไม่ตั้งใจได้ง่าย ไม่ควรใช้หากการเรียกกลับของคุณดำเนินการ I/O ของดิสก์ รับล็อก หรือเรียกใช้โค้ดอื่นๆ ที่คุณไม่ได้ควบคุมและตรวจสอบอย่างรอบคอบ

bindToNetwork

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

เชื่อมโยงคำขอกับแฮนเดิลเครือข่ายที่ระบุ Cronet จะส่งคำขอนี้โดยใช้เฉพาะเครือข่ายที่เชื่อมโยงกับแฮนเดิลนี้ หากเครือข่ายนี้ตัดการเชื่อมต่อ คำขอจะล้มเหลว โดยข้อผิดพลาดที่แน่นอนจะขึ้นอยู่กับขั้นตอนการประมวลผลคำขอเมื่อเครือข่ายตัดการเชื่อมต่อ คุณรับแฮนเดิลเครือข่ายได้ผ่าน Network#getNetworkHandle พร้อมใช้งานตั้งแต่ Android Marshmallow เป็นต้นไปเท่านั้น

พารามิเตอร์
networkHandle: Long

แฮนเดิลเครือข่ายที่จะเชื่อมโยงคำขอ ระบุ UNBIND_NETWORK_HANDLE เพื่อยกเลิกการเชื่อมโยง

การคืนสินค้า
UrlRequest.Builder!

เครื่องมือสร้างเพื่ออำนวยความสะดวกในการเชื่อมโยง

สร้าง

abstract fun build(): UrlRequest!

สร้าง UrlRequest โดยใช้การกำหนดค่าภายใน Builder นี้ จากนั้นคุณจะเริ่มใช้ UrlRequest ที่ส่งคืนมาได้โดยโทรหา start

การคืนสินค้า
UrlRequest!

สร้าง UrlRequest โดยใช้การกำหนดค่าภายใน Builder นี้

disableCache

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!

เครื่องมือสร้างเพื่ออำนวยความสะดวกในการเชื่อมโยง

setPriority

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 ที่จะดำเนินการคำขอนี้ให้เปิดใช้รูปแบบการบีบอัดที่รองรับพจนานุกรมภายนอก ซึ่งเป็นการนำ draft-ietf-httpbis-compression-dictionary ไปใช้บางส่วนภายใน Cronet Cronet จะไม่จัดการส่วนหัวของการตอบกลับ "Use-As-Dictionary" โดยตรง แต่จะอาศัยโปรแกรมฝังเพื่อจัดการส่วนหัวเหล่านั้น แล้วเรียกใช้ UrlRequest.Builder#setCompressionDictionary ในภายหลังสำหรับคำขอที่ตรงกับกฎของ Use-As-Dictionary หรือดึงข้อมูลพจนานุกรมการบีบอัดผ่านกลไกอื่นๆ นอกแบนด์ แล้วเรียกใช้ UrlRequest.Builder#setCompressionDictionary ในภายหลัง Cronet จะตีความพจนานุกรมว่าตรงกับ UrlRequest นี้เท่านั้น หากมีการเปลี่ยนเส้นทางคำขอดังกล่าว และผู้ฝังตัดสินใจที่จะติดตามการเปลี่ยนเส้นทาง พจนานุกรมจะตรงกับ 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() กลับมา

ระบบจะเรียกใช้ Listener พร้อมข้อมูลคำขอที่เสร็จสมบูรณ์ใน java.util.concurrent.Executor ที่ getExecutor() ระบุ

พารามิเตอร์
listener: RequestFinishedInfo.Listener!

เครื่องรับฟังสำหรับคำขอที่เสร็จสมบูรณ์

การคืนสินค้า
UrlRequest.Builder!

เครื่องมือสร้างเพื่ออำนวยความสะดวกในการเชื่อมโยง

setTrafficStatsTag

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

ตั้งค่าแท็ก android.net.TrafficStats ที่จะใช้เมื่อพิจารณาการเข้าชมซ็อกเก็ตที่เกิดจากคำขอนี้ ดูข้อมูลเพิ่มเติมที่ android.net.TrafficStats หากไม่ได้ตั้งค่าแท็ก (เช่น ไม่ได้เรียกใช้เมธอดนี้) บัญชี Android จะถือว่าการเข้าชมซ็อกเก็ตที่เกิดจากคำขอนี้เป็นค่าแท็กที่ตั้งเป็น 0

หมายเหตุ: การตั้งค่าแท็กจะไม่อนุญาตให้แชร์ซ็อกเก็ตกับคำขอที่มีแท็กอื่น ซึ่งอาจส่งผลเสียต่อประสิทธิภาพโดยการห้ามแชร์การเชื่อมต่อ กล่าวคือ จะอนุญาตให้ใช้ซ็อกเก็ตแบบมัลติเพล็กซ์ (เช่น 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!

เครื่องมือสร้างเพื่ออำนวยความสะดวกในการเชื่อมโยง

setUploadDataProvider

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

ตั้งค่าผู้ให้บริการข้อมูลการอัปโหลด เปลี่ยนเมธอดเป็น "POST" หากไม่ได้ตั้งค่าไว้อย่างชัดแจ้ง การเริ่มคำขอจะทำให้เกิดข้อยกเว้นหากไม่ได้ตั้งค่าส่วนหัว Content-Type

พารามิเตอร์
uploadDataProvider: UploadDataProvider!

มีหน้าที่ในการให้ข้อมูลการอัปโหลด

executor: Executor!

ระบบจะเรียกใช้uploadDataProviderทั้งหมดโดยใช้ Executorนี้ อาจเป็น Executor เดียวกันกับที่คำขอใช้ก็ได้ (ไม่บังคับ)

การคืนสินค้า
UrlRequest.Builder!

เครื่องมือสร้างเพื่ออำนวยความสะดวกในการเชื่อมโยง