# RequestFinishedInfo


```
public abstract class RequestFinishedInfo
```

<br />

*** ** * ** ***

Information about a finished request. Passed to `https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/RequestFinishedInfo.Listener`.

To associate the data with the original request, use `https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/UrlRequest.Builder#addRequestAnnotation(java.lang.Object)` to add a unique identifier when creating the request, and call `https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/RequestFinishedInfo#getAnnotations()` when the `https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/RequestFinishedInfo` is received to retrieve the identifier.

## Summary

| ### Nested types |
|---|
| `public abstract class https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/RequestFinishedInfo.Listener` Listens for finished requests for the purpose of collecting metrics. |
| `public abstract class https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/RequestFinishedInfo.Metrics` Metrics collected for a single request. |

| ### Constants |
|---|---|
| `static final int` | `https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/RequestFinishedInfo#CANCELED() = 2` Reason value indicating that the request was canceled. |
| `static final int` | `https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/RequestFinishedInfo#FAILED() = 1` Reason value indicating that the request failed or returned an error. |
| `static final int` | `https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/RequestFinishedInfo#SUCCEEDED() = 0` Reason value indicating that the request succeeded. |

| ### Public constructors |
|---|
| `https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/RequestFinishedInfo#RequestFinishedInfo()()` |

| ### Public methods |
|---|---|
| `abstract https://developer.android.com/reference/java/util/Collection.html<https://developer.android.com/reference/java/lang/Object.html>` | `https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/RequestFinishedInfo#getAnnotations()()` Returns the objects that the caller has supplied when initiating the request, using `https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/UrlRequest.Builder#addRequestAnnotation(java.lang.Object)`. |
| `abstract @https://developer.android.com/reference/androidx/annotation/Nullable.html https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/CronetException` | `https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/RequestFinishedInfo#getException()()` If the request failed, returns the same `https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/CronetException` provided to `https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/UrlRequest.Callback#onFailed(org.chromium.net.UrlRequest,org.chromium.net.UrlResponseInfo,org.chromium.net.CronetException)`. |
| `abstract int` | `https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/RequestFinishedInfo#getFinishedReason()()` Returns the reason why the request finished. |
| `abstract https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/RequestFinishedInfo.Metrics` | `https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/RequestFinishedInfo#getMetrics()()` Returns metrics collected for this request. |
| `abstract @https://developer.android.com/reference/androidx/annotation/Nullable.html https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/UrlResponseInfo` | `https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/RequestFinishedInfo#getResponseInfo()()` Returns a `https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/UrlResponseInfo` for the request, if its response had started. |
| `abstract https://developer.android.com/reference/java/lang/String.html` | `https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/RequestFinishedInfo#getUrl()()` Returns the request's original URL. |

## Constants

### CANCELED

```
public static final int CANCELED = 2
```

Reason value indicating that the request was canceled. Returned from `https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/RequestFinishedInfo#getFinishedReason()`.

### FAILED

```
public static final int FAILED = 1
```

Reason value indicating that the request failed or returned an error. Returned from `https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/RequestFinishedInfo#getFinishedReason()`.

### SUCCEEDED

```
public static final int SUCCEEDED = 0
```

Reason value indicating that the request succeeded. Returned from `https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/RequestFinishedInfo#getFinishedReason()`.

## Public constructors

### RequestFinishedInfo

```
public RequestFinishedInfo()
```

## Public methods

### getAnnotations

```
public abstract Collection<Object> getAnnotations()
```

Returns the objects that the caller has supplied when initiating the request, using `https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/UrlRequest.Builder#addRequestAnnotation(java.lang.Object)`. Annotations can be used to associate a `https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/RequestFinishedInfo` with the original request or type of request.

| Returns |
|---|---|
| `https://developer.android.com/reference/java/util/Collection.html<https://developer.android.com/reference/java/lang/Object.html>` | annotations supplied when creating the request |

### getException

```
public abstract @Nullable CronetException getException()
```

If the request failed, returns the same `https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/CronetException` provided to `https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/UrlRequest.Callback#onFailed(org.chromium.net.UrlRequest,org.chromium.net.UrlResponseInfo,org.chromium.net.CronetException)`.

| Returns |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/Nullable.html https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/CronetException` | the request's `https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/CronetException`, if the request failed |

### getFinishedReason

```
public abstract int getFinishedReason()
```

Returns the reason why the request finished.

| Returns |
|---|---|
| `int` | one of `https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/RequestFinishedInfo#SUCCEEDED()`, `https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/RequestFinishedInfo#FAILED()`, or `https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/RequestFinishedInfo#CANCELED()` |

### getMetrics

```
public abstract RequestFinishedInfo.Metrics getMetrics()
```

Returns metrics collected for this request.

The reported times and bytes account for all redirects, i.e. the TTFB is from the start of the original request to the ultimate response headers, the TTLB is from the start of the original request to the end of the ultimate response, the received byte count is for all redirects and the ultimate response combined. These cumulative metric definitions are debatable, but are chosen to make sense for user-facing latency analysis.

| Returns |
|---|---|
| `https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/RequestFinishedInfo.Metrics` | metrics collected for this request. |

### getResponseInfo

```
public abstract @Nullable UrlResponseInfo getResponseInfo()
```

Returns a `https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/UrlResponseInfo` for the request, if its response had started.

| Returns |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/Nullable.html https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/UrlResponseInfo` | `https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/UrlResponseInfo` for the request, if its response had started. |

### getUrl

```
public abstract String getUrl()
```

Returns the request's original URL.

| Returns |
|---|---|
| `https://developer.android.com/reference/java/lang/String.html` | the request's original URL |