UrlRequest.Builder

public abstract class UrlRequest.Builder


UrlRequest의 빌더입니다. build로 요청을 구성하기 전에 요청을 구성할 수 있습니다. 빌더는 newUrlRequestBuilder를 호출하여 만들 수 있습니다.

요약

상수

static final int

가장 높은 요청 우선순위입니다.

static final int

가장 낮은 요청 우선순위입니다.

static final int

요청 우선순위가 낮습니다.

static final int

요청 우선순위가 매우 낮습니다.

static final int

중간 요청 우선순위입니다.

공개 생성자

공개 메서드

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

요청 헤더를 추가합니다.

UrlRequest.Builder

주석 객체를 이 요청과 연결합니다.

abstract UrlRequest.Builder

이 요청에서 콜백 ( UploadDataProviderUrlRequest.Callback용)을 알리는 데 사용할 실행기가 Guava의 directExecutor 또는 java.util.concurrent.ThreadPoolExecutor.CallerRunsPolicy와 같이 의도적으로 인라인 실행을 수행함을 표시합니다.

UrlRequest.Builder
bindToNetwork(long networkHandle)

요청을 지정된 네트워크 핸들에 바인딩합니다.

abstract UrlRequest

Builder 내의 구성을 사용하여 UrlRequest를 만듭니다.

abstract UrlRequest.Builder

요청에 대한 캐시를 사용 중지합니다.

abstract UrlRequest.Builder

이 요청에 사용할 HTTP 메서드 동사를 설정합니다.

abstract UrlRequest.Builder
setPriority(int priority)

REQUEST_PRIORITY_* 값 중 하나여야 하는 요청의 우선순위를 설정합니다.

UrlRequest.Builder
@UrlRequest.Experimental
setRawCompressionDictionary(
    byte[] dictionarySha256Hash,
    ByteBuffer dictionary,
    String dictionaryId
)

Cronet이 이 요청에 지정된 압축 사전을 사용할 수 있도록 허용합니다.

UrlRequest.Builder

onCanceled(), onFailed() 또는 onSucceeded()가 반환된 후 호출되는 리스너를 설정합니다.

UrlRequest.Builder

이 요청으로 인해 발생한 소켓 트래픽을 계산할 때 사용할 android.net.TrafficStats 태그를 설정합니다.

UrlRequest.Builder

이 요청으로 인해 발생한 소켓 트래픽을 계산할 때 사용할 특정 UID를 설정합니다.

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

업로드 데이터 제공업체를 설정합니다.

상수

REQUEST_PRIORITY_HIGHEST

public static final int REQUEST_PRIORITY_HIGHEST = 4

가장 높은 요청 우선순위입니다. setPriority에 전달되었습니다.

REQUEST_PRIORITY_IDLE

public static final int REQUEST_PRIORITY_IDLE = 0

가장 낮은 요청 우선순위입니다. setPriority에 전달되었습니다.

REQUEST_PRIORITY_LOW

public static final int REQUEST_PRIORITY_LOW = 2

요청 우선순위가 낮습니다. setPriority에 전달되었습니다.

REQUEST_PRIORITY_LOWEST

public static final int REQUEST_PRIORITY_LOWEST = 1

요청 우선순위가 매우 낮습니다. setPriority에 전달되었습니다.

REQUEST_PRIORITY_MEDIUM

public static final int REQUEST_PRIORITY_MEDIUM = 3

중간 요청 우선순위입니다. setPriority에 전달되었습니다. 요청에 부여된 기본 우선순위입니다.

공개 생성자

빌더

public Builder()

공개 메서드

addHeader

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

요청 헤더를 추가합니다.

매개변수
String header

헤더 이름입니다.

String value

헤더 값입니다.

반환
UrlRequest.Builder

빌더를 반환하여 연결을 용이하게 합니다.

addRequestAnnotation

public UrlRequest.Builder addRequestAnnotation(Object annotation)

주석 객체를 이 요청과 연결합니다. 두 개 이상 추가할 수 있습니다. RequestFinishedInfo.Listener에 전달됩니다(getAnnotations 참고).

매개변수
Object annotation

RequestFinishedInfo이 있는 RequestFinishedInfo.Listener에 전달할 객체

반환
UrlRequest.Builder

빌더를 반환하여 연결을 용이하게 합니다.

allowDirectExecutor

public abstract UrlRequest.Builder allowDirectExecutor()

이 요청이 콜백 ( UploadDataProviderUrlRequest.Callback용)을 알리는 데 사용할 실행기가 Guava의 directExecutor 또는 java.util.concurrent.ThreadPoolExecutor.CallerRunsPolicy와 같이 인라인 실행을 의도적으로 실행함을 표시합니다.

경고: 이 옵션을 사용하면 실수로 네트워크 스레드를 차단하기 쉽습니다. 콜백이 디스크 I/O를 실행하거나, 잠금을 획득하거나, 신중하게 제어하고 감사하지 않는 다른 코드를 호출하는 경우에는 사용하면 안 됩니다.

bindToNetwork

public UrlRequest.Builder bindToNetwork(long networkHandle)

요청을 지정된 네트워크 핸들에 바인딩합니다. Cronet은 이 핸들과 연결된 네트워크만 사용하여 이 요청을 전송합니다. 이 네트워크가 연결 해제되면 요청이 실패하며, 정확한 오류는 네트워크가 연결 해제될 때 요청 처리 단계에 따라 달라집니다. 네트워크 핸들은 Network#getNetworkHandle를 통해 가져올 수 있습니다. Android Marshmallow부터 사용할 수 있습니다.

매개변수
long networkHandle

요청을 바인딩할 네트워크 핸들입니다. UNBIND_NETWORK_HANDLE을 지정하여 바인딩을 해제합니다.

반환
UrlRequest.Builder

빌더를 반환하여 연결을 용이하게 합니다.

build

public abstract UrlRequest build()

Builder 내의 구성을 사용하여 UrlRequest를 만듭니다. 반환된 UrlRequeststart를 호출하여 시작할 수 있습니다.

반환
UrlRequest

Builder 내의 구성을 사용하여 UrlRequest를 생성합니다.

disableCache

public abstract UrlRequest.Builder disableCache()

요청에 대한 캐시를 사용 중지합니다. 캐시를 사용하도록 컨텍스트가 설정되지 않은 경우 이 호출은 아무런 영향을 미치지 않습니다.

반환
UrlRequest.Builder

빌더를 반환하여 연결을 용이하게 합니다.

setHttpMethod

public abstract UrlRequest.Builder setHttpMethod(String method)

이 요청에 사용할 HTTP 메서드 동사를 설정합니다.

이 메서드가 호출되지 않은 경우 기본값은 요청에 본문이 없으면 'GET'이고 본문이 있으면 'POST'입니다.

매개변수
String method

'GET', 'HEAD', 'DELETE', 'POST', 'PUT' 중 하나입니다.

반환
UrlRequest.Builder

빌더를 반환하여 연결을 용이하게 합니다.

setPriority

public abstract UrlRequest.Builder setPriority(int priority)

REQUEST_PRIORITY_* 값 중 하나여야 하는 요청의 우선순위를 설정합니다. 이 메서드가 호출되지 않으면 요청에 REQUEST_PRIORITY_MEDIUM 우선순위가 부여됩니다.

매개변수
int priority

요청의 우선순위로, REQUEST_PRIORITY_* 값 중 하나여야 합니다.

반환
UrlRequest.Builder

빌더를 반환하여 연결을 용이하게 합니다.

setRawCompressionDictionary

@UrlRequest.Experimental
public UrlRequest.Builder setRawCompressionDictionary(
    byte[] dictionarySha256Hash,
    ByteBuffer dictionary,
    String dictionaryId
)

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과도 일치합니다.

매개변수
byte[] dictionarySha256Hash

지정된 압축 사전의 SHA-256입니다.

ByteBuffer dictionary

Cronet이 이 UrlRequest에 사용할 수 있는 압축 사전입니다. 직접 ByteBuffer여야 합니다.

String dictionaryId

이 사전과 연결된 선택적 ID입니다. 누락된 경우 빈 문자열이어야 합니다. 제공한 경우 Dictionary-ID 헤더를 통해 전송됩니다. 서버가 'Use-As-Dictionary' 응답에 ID를 지정한 경우 이를 지정해야 합니다.

반환
UrlRequest.Builder

빌더를 반환하여 연결을 용이하게 합니다.

setRequestFinishedListener

public UrlRequest.Builder setRequestFinishedListener(RequestFinishedInfo.Listener listener)

onCanceled(), onFailed() 또는 onSucceeded()가 반환된 후 호출되는 리스너를 설정합니다.

리스너는 getExecutor()에서 제공한 java.util.concurrent.Executor의 요청 완료 정보와 함께 호출됩니다.

매개변수
RequestFinishedInfo.Listener listener

완료된 요청의 리스너입니다.

반환
UrlRequest.Builder

빌더를 반환하여 연결을 용이하게 합니다.

setTrafficStatsTag

public UrlRequest.Builder setTrafficStatsTag(int tag)

이 요청으로 인해 발생한 소켓 트래픽을 계산할 때 사용할 android.net.TrafficStats 태그를 설정합니다. 자세한 내용은 android.net.TrafficStats를 참조하세요. 태그가 설정되지 않은 경우 (예: 이 메서드가 호출되지 않음) Android는 태그 값이 0으로 설정된 것처럼 이 요청으로 인해 발생한 소켓 트래픽을 처리합니다.

참고: 태그를 설정하면 다른 태그가 있는 요청과 소켓을 공유할 수 없으므로 연결 공유가 금지되어 성능에 부정적인 영향을 미칠 수 있습니다. 즉, 모든 요청의 소켓 태그가 동일한 경우에만 다중화된 소켓 (예: HTTP/2 및 QUIC)을 사용할 수 있습니다.

매개변수
int tag

이 요청으로 인해 발생한 소켓 트래픽을 고려할 때 사용되는 태그 값입니다. 0xFFFFFF00~0xFFFFFFFF 사이의 태그는 애플리케이션을 대신하여 트래픽을 실행할 때 android.app.DownloadManager와 같은 시스템 서비스에서 예약하고 내부적으로 사용합니다.

반환
UrlRequest.Builder

빌더를 반환하여 연결을 용이하게 합니다.

setTrafficStatsUid

public UrlRequest.Builder setTrafficStatsUid(int uid)

이 요청으로 인해 발생한 소켓 트래픽을 계산할 때 사용할 특정 UID를 설정합니다. 자세한 내용은 android.net.TrafficStats를 참고하세요. 다른 애플리케이션을 대신하여 작업을 실행할 때 사용하도록 설계되었습니다. 호출자에게는 MODIFY_NETWORK_ACCOUNTING 권한이 있어야 합니다. 기본적으로 트래픽은 호출자의 UID에 기여합니다.

참고: UID를 설정하면 다른 UID가 있는 요청과의 소켓 공유가 허용되지 않으므로 연결 공유가 금지되어 성능에 부정적인 영향을 미칠 수 있습니다. 즉, 모든 요청에 동일한 UID가 설정된 경우에만 다중화된 소켓 (예: HTTP/2 및 QUIC)을 사용할 수 있습니다.

매개변수
int uid

이 요청으로 인해 발생한 소켓 트래픽을 귀속시킬 UID입니다.

반환
UrlRequest.Builder

빌더를 반환하여 연결을 용이하게 합니다.

setUploadDataProvider

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

업로드 데이터 제공업체를 설정합니다. 명시적으로 설정하지 않으면 메서드를 'POST'로 전환합니다. Content-Type 헤더가 설정되지 않은 경우 요청을 시작하면 예외가 발생합니다.

매개변수
UploadDataProvider uploadDataProvider

업로드 데이터를 제공할 책임이 있습니다.

Executor executor

모든 uploadDataProvider 메서드는 이 Executor를 사용하여 호출됩니다. 선택적으로 요청 자체에서 사용하는 Executor와 동일할 수 있습니다.

반환
UrlRequest.Builder

빌더를 반환하여 연결을 용이하게 합니다.