# WebServerDispatcher.Resource.Builder

Artifact: [androidx.media3:media3-test-utils](https://developer.android.com/jetpack/androidx/releases/media3) [View Source](https://cs.android.com/search?q=file:androidx/media3/test/utils/WebServerDispatcher.java+class:androidx.media3.test.utils.WebServerDispatcher.Resource.Builder)

*** ** * ** ***


```
class WebServerDispatcher.Resource.Builder
```

<br />

*** ** * ** ***

Builder for `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/WebServerDispatcher.Resource`.

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/WebServerDispatcher.Resource.Builder#Builder()()` Constructs an instance. |

| ### Public functions |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/WebServerDispatcher.Resource!` | `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/WebServerDispatcher.Resource.Builder#build()()` Builds the `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/WebServerDispatcher.Resource`. |
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/WebServerDispatcher.Resource.Builder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/test/utils/WebServerDispatcher.Resource.Builder#includesContentLengthInRangeResponses(boolean)( includesContentLengthInRangeResponses: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html )` Sets if RFC 7233 HTTP 206 range responses should include a `Content-Length` header. |
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/WebServerDispatcher.Resource.Builder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/test/utils/WebServerDispatcher.Resource.Builder#resolvesToUnknownLength(boolean)(resolvesToUnknownLength: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)` Sets if the server shouldn't include the resource length in header responses. |
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/WebServerDispatcher.Resource.Builder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/test/utils/WebServerDispatcher.Resource.Builder#setData(byte[])(data: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-byte-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-byte/index.html>!)` Sets the data served by this resource. |
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/WebServerDispatcher.Resource.Builder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/test/utils/WebServerDispatcher.Resource.Builder#setExtraResponseHeaders(com.google.common.collect.Multimap<java.lang.String,java.lang.String>)(extraResponseHeaders: https://guava.dev/releases/snapshot-android/api/docs/com/google/common/collect/Multimap.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!, https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!>!)` Sets the extra response headers that should be attached. |
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/WebServerDispatcher.Resource.Builder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/test/utils/WebServerDispatcher.Resource.Builder#setGzipSupport(int)(gzipSupport: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` Sets the level of gzip support for this resource. |
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/WebServerDispatcher.Resource.Builder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/test/utils/WebServerDispatcher.Resource.Builder#setHttpMethod(int)(@https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec.HttpMethod httpMethod: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` Sets the HTTP method that is expected to be used to access the resource. |
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/WebServerDispatcher.Resource.Builder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/test/utils/WebServerDispatcher.Resource.Builder#setNonRangeResponseCode(int)(nonRangeResponseCode: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` Sets the HTTP response code to use when a range is not supported or not requested. |
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/WebServerDispatcher.Resource.Builder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/test/utils/WebServerDispatcher.Resource.Builder#setPath(java.lang.String)(path: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!)` Sets the path this data should be served at. |
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/WebServerDispatcher.Resource.Builder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/test/utils/WebServerDispatcher.Resource.Builder#setRequestBody(byte[])(requestBody: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-byte-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-byte/index.html>!)` The request body that is expected to be included in a request for the resource. |
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/WebServerDispatcher.Resource.Builder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/test/utils/WebServerDispatcher.Resource.Builder#setRequestHeaders(com.google.common.collect.ImmutableListMultimap<java.lang.String,java.lang.String>)( requestHeaders: https://guava.dev/releases/snapshot-android/api/docs/com/google/common/collect/ImmutableListMultimap.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!, https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!>! )` Sets the request headers that are expected to be included in a request for the resource. |
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/WebServerDispatcher.Resource.Builder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/test/utils/WebServerDispatcher.Resource.Builder#supportsRangeRequests(boolean)(supportsRangeRequests: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)` Sets if RFC 7233 range requests should be supported for this resource. |

## Public constructors

### Builder

```
Builder()
```

Constructs an instance.

## Public functions

### build

```
fun build(): WebServerDispatcher.Resource!
```

Builds the `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/WebServerDispatcher.Resource`.

### includesContentLengthInRangeResponses

```
@CanIgnoreReturnValue
fun includesContentLengthInRangeResponses(
    includesContentLengthInRangeResponses: Boolean
): WebServerDispatcher.Resource.Builder!
```

Sets if RFC 7233 HTTP 206 range responses should include a `Content-Length` header.

Setting this to false allows simulating servers or proxies that only include the `
Content-Range` header and not `Content-Length`, as described in the comments in `https://developer.android.com/reference/kotlin/androidx/media3/datasource/HttpUtil#getContentLength(java.lang.String,java.lang.String)`.

Defaults to true.

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/WebServerDispatcher.Resource.Builder!` | this builder, for convenience. |

### resolvesToUnknownLength

```
@CanIgnoreReturnValue
fun resolvesToUnknownLength(resolvesToUnknownLength: Boolean): WebServerDispatcher.Resource.Builder!
```

Sets if the server shouldn't include the resource length in header responses.

If true, responses to unbound requests won't include a Content-Length header and Content-Range headers won't include the total resource length.

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/WebServerDispatcher.Resource.Builder!` | this builder, for convenience. |

### setData

```
@CanIgnoreReturnValue
fun setData(data: ByteArray<Byte>!): WebServerDispatcher.Resource.Builder!
```

Sets the data served by this resource. This is required.

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/WebServerDispatcher.Resource.Builder!` | this builder, for convenience. |

### setExtraResponseHeaders

```
@CanIgnoreReturnValue
fun setExtraResponseHeaders(extraResponseHeaders: Multimap<String!, String!>!): WebServerDispatcher.Resource.Builder!
```

Sets the extra response headers that should be attached.

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/WebServerDispatcher.Resource.Builder!` | this builder, for convenience. |

### setGzipSupport

```
@CanIgnoreReturnValue
fun setGzipSupport(gzipSupport: Int): WebServerDispatcher.Resource.Builder!
```

Sets the level of gzip support for this resource. Defaults to `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/WebServerDispatcher.Resource#GZIP_SUPPORT_DISABLED()`.

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/WebServerDispatcher.Resource.Builder!` | this builder, for convenience. |

### setHttpMethod

```
@CanIgnoreReturnValue
fun setHttpMethod(@DataSpec.HttpMethod httpMethod: Int): WebServerDispatcher.Resource.Builder!
```

Sets the HTTP method that is expected to be used to access the resource.

Defaults to `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec#HTTP_METHOD_GET()`.

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/WebServerDispatcher.Resource.Builder!` | this builder, for convenience. |

### setNonRangeResponseCode

```
@CanIgnoreReturnValue
fun setNonRangeResponseCode(nonRangeResponseCode: Int): WebServerDispatcher.Resource.Builder!
```

Sets the HTTP response code to use when a range is not supported or not requested.

Defaults to 200.

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/WebServerDispatcher.Resource.Builder!` | this builder, for convenience. |

### setPath

```
@CanIgnoreReturnValue
fun setPath(path: String!): WebServerDispatcher.Resource.Builder!
```

Sets the path this data should be served at. This is required.

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/WebServerDispatcher.Resource.Builder!` | this builder, for convenience. |

### setRequestBody

```
@CanIgnoreReturnValue
fun setRequestBody(requestBody: ByteArray<Byte>!): WebServerDispatcher.Resource.Builder!
```

The request body that is expected to be included in a request for the resource.

If a request is made with a mismatched body, `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/WebServerDispatcher` will return a `400 Bad Request` error response.

Defaults to an empty array.

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/WebServerDispatcher.Resource.Builder!` | this builder, for convenience. |

### setRequestHeaders

```
@CanIgnoreReturnValue
fun setRequestHeaders(
    requestHeaders: ImmutableListMultimap<String!, String!>!
): WebServerDispatcher.Resource.Builder!
```

Sets the request headers that are expected to be included in a request for the resource.

This is non-exhaustive, additional headers are permitted, but if any headers in this map are missing from a request (or have mismatched values), `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/WebServerDispatcher` will return a `400 Bad Request` error response.

Defaults to an empty map.

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/WebServerDispatcher.Resource.Builder!` | this builder, for convenience. |

### supportsRangeRequests

```
@CanIgnoreReturnValue
fun supportsRangeRequests(supportsRangeRequests: Boolean): WebServerDispatcher.Resource.Builder!
```

Sets if RFC 7233 range requests should be supported for this resource. Defaults to false.

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/WebServerDispatcher.Resource.Builder!` | this builder, for convenience. |