# PrerenderParameters.Builder

Artifact: [androidx.webkit:webkit](https://developer.android.com/jetpack/androidx/releases/webkit) [View Source](https://cs.android.com/search?q=file:androidx/webkit/PrerenderParameters.java+class:androidx.webkit.PrerenderParameters.Builder) Added in [1.17.0](https://developer.android.com/jetpack/androidx/releases/webkit#1.17.0)

*** ** * ** ***


```
public final class PrerenderParameters.Builder
```

<br />

*** ** * ** ***

A builder class to use to construct the `https://developer.android.com/reference/androidx/webkit/PrerenderParameters`.

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/webkit/PrerenderParameters.Builder#Builder()()` Construct a new Builder. |

| ### Public methods |
|---|---|
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/webkit/PrerenderParameters.Builder` | `@https://developer.android.com/reference/androidx/webkit/Profile.ExperimentalUrlPrefetch https://developer.android.com/reference/androidx/webkit/PrerenderParameters.Builder#addAdditionalHeader(java.lang.String,java.lang.String)(@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/java/lang/String.html key, @https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/java/lang/String.html value)` Sets the header value for the given key. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/webkit/PrerenderParameters.Builder` | `@https://developer.android.com/reference/androidx/webkit/Profile.ExperimentalUrlPrefetch https://developer.android.com/reference/androidx/webkit/PrerenderParameters.Builder#addAdditionalHeaders(java.util.Map<java.lang.String,java.lang.String>)(@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/java/util/Map.html<https://developer.android.com/reference/java/lang/String.html, https://developer.android.com/reference/java/lang/String.html> additionalHeaders)` Sets multiple headers at once. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/webkit/PrerenderParameters` | `@https://developer.android.com/reference/androidx/webkit/Profile.ExperimentalUrlPrefetch https://developer.android.com/reference/androidx/webkit/PrerenderParameters.Builder#build()()` Build the `https://developer.android.com/reference/androidx/webkit/PrerenderParameters`. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/webkit/PrerenderParameters.Builder` | `@https://developer.android.com/reference/androidx/webkit/Profile.ExperimentalUrlPrefetch [setExpectedNoVarySearchData](https://developer.android.com/reference/androidx/webkit/PrerenderParameters.Builder#setExpectedNoVarySearchData(androidx.webkit.NoVarySearchHeader))( @https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/webkit/NoVarySearchHeader expectedNoVarySearchHeader )` **This method is deprecated.** Please use `https://developer.android.com/reference/androidx/webkit/PrerenderParameters.Builder#setExpectedNoVarySearchHeader(androidx.webkit.NoVarySearchHeader)` <br /> |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/webkit/PrerenderParameters.Builder` | `@https://developer.android.com/reference/androidx/webkit/Profile.ExperimentalUrlPrefetch https://developer.android.com/reference/androidx/webkit/PrerenderParameters.Builder#setExpectedNoVarySearchHeader(androidx.webkit.NoVarySearchHeader)( @https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/webkit/NoVarySearchHeader expectedNoVarySearchHeader )` Sets the [No-Vary-Search](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/No-Vary-Search) data that's expected to be returned via the header in the prerender's response. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/webkit/PrerenderParameters.Builder` | `@https://developer.android.com/reference/androidx/webkit/Profile.ExperimentalUrlPrefetch https://developer.android.com/reference/androidx/webkit/PrerenderParameters.Builder#setVariationsId(java.lang.Integer)(@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/java/lang/Integer.html variationsId)` Sets an optional variations ID to associate with this prefetch request. |

## Public constructors

### Builder

Added in [1.17.0](https://developer.android.com/jetpack/androidx/releases/webkit#1.17.0)

```
public Builder()
```

Construct a new Builder.

## Public methods

### addAdditionalHeader

Added in [1.17.0](https://developer.android.com/jetpack/androidx/releases/webkit#1.17.0)

```
@Profile.ExperimentalUrlPrefetch
public @NonNull PrerenderParameters.Builder addAdditionalHeader(@NonNull String key, @NonNull String value)
```

Sets the header value for the given key. If called multiple times for the same key, the last value will be used.

Header keys must be [RFC 2616](https://datatracker.ietf.org/doc/html/rfc2616) -compliant.

The logic for handling additional header isn't guaranteed to match the `https://developer.android.com/reference/android/webkit/WebView.html#loadUrl(java.lang.String, java.util.Map&lt;java.lang.String,java.lang.String&gt;)`'s logic and is subject to change in the future.

| Parameters |
|---|---|
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/java/lang/String.html key` | The header key. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/java/lang/String.html value` | The header value. |

| Returns |
|---|---|
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/webkit/PrerenderParameters.Builder` | This builder instance for chaining. |

### addAdditionalHeaders

Added in [1.17.0](https://developer.android.com/jetpack/androidx/releases/webkit#1.17.0)

```
@Profile.ExperimentalUrlPrefetch
public @NonNull PrerenderParameters.Builder addAdditionalHeaders(@NonNull Map<String, String> additionalHeaders)
```

Sets multiple headers at once. The headers passed in here will be merged with any that have been previously set (duplicate keys will be overridden).

Header keys must be [RFC 2616](https://datatracker.ietf.org/doc/html/rfc2616) compliant.

| Parameters |
|---|---|
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/java/util/Map.html<https://developer.android.com/reference/java/lang/String.html, https://developer.android.com/reference/java/lang/String.html> additionalHeaders` | A map of additional headers to set. |

| Returns |
|---|---|
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/webkit/PrerenderParameters.Builder` | This builder instance for chaining. |

### build

Added in [1.17.0](https://developer.android.com/jetpack/androidx/releases/webkit#1.17.0)

```
@Profile.ExperimentalUrlPrefetch
public @NonNull PrerenderParameters build()
```

Build the `https://developer.android.com/reference/androidx/webkit/PrerenderParameters`.

### setExpectedNoVarySearchData

Added in [1.17.0](https://developer.android.com/jetpack/androidx/releases/webkit#1.17.0) Deprecated in [1.17.0](https://developer.android.com/jetpack/androidx/releases/webkit#1.17.0)

```
@Profile.ExperimentalUrlPrefetch
public @NonNull PrerenderParameters.Builder [setExpectedNoVarySearchData](https://developer.android.com/reference/androidx/webkit/PrerenderParameters.Builder#setExpectedNoVarySearchData(androidx.webkit.NoVarySearchHeader))(
    @NonNull NoVarySearchHeader expectedNoVarySearchHeader
)
```

> [!CAUTION]
> **This method is deprecated.**   
>
> Please use `https://developer.android.com/reference/androidx/webkit/PrerenderParameters.Builder#setExpectedNoVarySearchHeader(androidx.webkit.NoVarySearchHeader)`

Sets the [No-Vary-Search](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/No-Vary-Search) data that's expected to be returned via the header in the prerender's response.

This is used to help determine if WebView#loadUrl should either use an in-flight prerender response to render the web contents or handle the URL as it typically does (i.e. start a network request).

| Parameters |
|---|---|
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/webkit/NoVarySearchHeader expectedNoVarySearchHeader` | The No-Vary-Search data expected to be returned in the prerender's response. |

| Returns |
|---|---|
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/webkit/PrerenderParameters.Builder` | This builder instance for chaining. |

### setExpectedNoVarySearchHeader

Added in [1.17.0](https://developer.android.com/jetpack/androidx/releases/webkit#1.17.0)

```
@Profile.ExperimentalUrlPrefetch
public @NonNull PrerenderParameters.Builder setExpectedNoVarySearchHeader(
    @NonNull NoVarySearchHeader expectedNoVarySearchHeader
)
```

Sets the [No-Vary-Search](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/No-Vary-Search) data that's expected to be returned via the header in the prerender's response.

This is used to help determine if WebView#loadUrl should either use an in-flight prerender response to render the web contents or handle the URL as it typically does (i.e. start a network request).

| Parameters |
|---|---|
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/webkit/NoVarySearchHeader expectedNoVarySearchHeader` | The No-Vary-Search data expected to be returned in the prerender's response. |

| Returns |
|---|---|
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/webkit/PrerenderParameters.Builder` | This builder instance for chaining. |

### setVariationsId

Added in [1.17.0](https://developer.android.com/jetpack/androidx/releases/webkit#1.17.0)

```
@Profile.ExperimentalUrlPrefetch
public @NonNull PrerenderParameters.Builder setVariationsId(@Nullable Integer variationsId)
```

Sets an optional variations ID to associate with this prefetch request.

| Parameters |
|---|---|
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/java/lang/Integer.html variationsId` | An Integer ID for this prefetch configuration, or `null` if no specific variations ID is applicable. |

| Returns |
|---|---|
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/webkit/PrerenderParameters.Builder` | This builder instance for chaining. |