# 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)

*** ** * ** ***


```
public final class WebServerDispatcher.Resource.Builder
```

<br />

*** ** * ** ***

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

## Summary

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

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

## Public constructors

### Builder

```
public Builder()
```

Constructs an instance.

## Public methods

### build

```
public WebServerDispatcher.Resource build()
```

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

### includesContentLengthInRangeResponses

```
@CanIgnoreReturnValue
public WebServerDispatcher.Resource.Builder includesContentLengthInRangeResponses(
    boolean includesContentLengthInRangeResponses
)
```

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/androidx/media3/datasource/HttpUtil#getContentLength(java.lang.String,java.lang.String)`.

Defaults to true.

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

### resolvesToUnknownLength

```
@CanIgnoreReturnValue
public WebServerDispatcher.Resource.Builder resolvesToUnknownLength(boolean resolvesToUnknownLength)
```

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/androidx/media3/test/utils/WebServerDispatcher.Resource.Builder` | this builder, for convenience. |

### setData

```
@CanIgnoreReturnValue
public WebServerDispatcher.Resource.Builder setData(byte[] data)
```

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

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

### setExtraResponseHeaders

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

Sets the extra response headers that should be attached.

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

### setGzipSupport

```
@CanIgnoreReturnValue
public WebServerDispatcher.Resource.Builder setGzipSupport(int gzipSupport)
```

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

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

### setHttpMethod

```
@CanIgnoreReturnValue
public WebServerDispatcher.Resource.Builder setHttpMethod(@DataSpec.HttpMethod int httpMethod)
```

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

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

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

### setNonRangeResponseCode

```
@CanIgnoreReturnValue
public WebServerDispatcher.Resource.Builder setNonRangeResponseCode(int nonRangeResponseCode)
```

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/androidx/media3/test/utils/WebServerDispatcher.Resource.Builder` | this builder, for convenience. |

### setPath

```
@CanIgnoreReturnValue
public WebServerDispatcher.Resource.Builder setPath(String path)
```

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

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

### setRequestBody

```
@CanIgnoreReturnValue
public WebServerDispatcher.Resource.Builder setRequestBody(byte[] requestBody)
```

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/androidx/media3/test/utils/WebServerDispatcher` will return a `400 Bad Request` error response.

Defaults to an empty array.

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

### setRequestHeaders

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

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/androidx/media3/test/utils/WebServerDispatcher` will return a `400 Bad Request` error response.

Defaults to an empty map.

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

### supportsRangeRequests

```
@CanIgnoreReturnValue
public WebServerDispatcher.Resource.Builder supportsRangeRequests(boolean supportsRangeRequests)
```

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

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