# Class HttpResponse (2.1.0)

<button class="button button-with-icon cloud-select-dropdown__button " aria-haspopup="true">Version latest</button>

- [2.1.0 (latest)](https://docs.cloud.google.com/java/docs/reference/google-http-client/latest/com.google.api.client.http.HttpResponse)
- [2.0.3](https://docs.cloud.google.com/java/docs/reference/google-http-client/2.0.3/com.google.api.client.http.HttpResponse)
- [1.47.1](https://docs.cloud.google.com/java/docs/reference/google-http-client/1.47.1/com.google.api.client.http.HttpResponse)
- [1.46.3](https://docs.cloud.google.com/java/docs/reference/google-http-client/1.46.3/com.google.api.client.http.HttpResponse)
- [1.45.3](https://docs.cloud.google.com/java/docs/reference/google-http-client/1.45.3/com.google.api.client.http.HttpResponse)
- [1.44.2](https://docs.cloud.google.com/java/docs/reference/google-http-client/1.44.2/com.google.api.client.http.HttpResponse)
- [1.43.2](https://docs.cloud.google.com/java/docs/reference/google-http-client/1.43.2/com.google.api.client.http.HttpResponse)
- [1.42.3](https://docs.cloud.google.com/java/docs/reference/google-http-client/1.42.3/com.google.api.client.http.HttpResponse)
- [1.41.8](https://docs.cloud.google.com/java/docs/reference/google-http-client/1.41.8/com.google.api.client.http.HttpResponse)

    public final class HttpResponse

HTTP response.

Callers should call [#disconnect](https://docs.cloud.google.com/java/docs/reference/google-http-client/latest/com.google.api.client.http.HttpResponse#com_google_api_client_http_HttpResponse_disconnect_) when the HTTP response object is no longer needed.
However, [#disconnect](https://docs.cloud.google.com/java/docs/reference/google-http-client/latest/com.google.api.client.http.HttpResponse#com_google_api_client_http_HttpResponse_disconnect_) does not have to be called if the response stream is properly
closed. Example usage:

HttpResponse response = request.execute();
try {
// process the HTTP response object
} finally {
response.disconnect();
}

Implementation is not thread-safe.

## Inheritance

[Object](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html) \> HttpResponse

## Inherited Members

[Object.clone()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#clone--) [Object.equals(Object)](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#equals-java.lang.Object-) [Object.finalize()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#finalize--) [Object.getClass()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#getClass--) [Object.hashCode()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#hashCode--) [Object.notify()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#notify--) [Object.notifyAll()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#notifyAll--) [Object.toString()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#toString--) [Object.wait()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait--) [Object.wait(long)](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait-long-) [Object.wait(long,int)](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait-long-int-)

## Methods

### \<T\>parseAs(Class\<T\> dataClass)

    public T <T>parseAs(Class<T> dataClass)

Parses the content of the HTTP response from [#getContent()](https://docs.cloud.google.com/java/docs/reference/google-http-client/latest/com.google.api.client.http.HttpResponse#com_google_api_client_http_HttpResponse_getContent__) and reads it into a data
class of key/value pairs using the parser returned by [HttpRequest#getParser()](https://docs.cloud.google.com/java/docs/reference/google-http-client/latest/com.google.api.client.http.HttpRequest#com_google_api_client_http_HttpRequest_getParser__).

**Reference:** <http://tools.ietf.org/html/rfc2616#section-4.3>

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `dataClass` | `https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html<T>` |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `T` | parsed data class or `null` for no content |

| **Exceptions** ||
|---|---|
| **Type** | **Description** |
| `https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html` |   |

### disconnect()

    public void disconnect()

Disconnect using [LowLevelHttpResponse#disconnect()](https://docs.cloud.google.com/java/docs/reference/google-http-client/latest/com.google.api.client.http.LowLevelHttpResponse#com_google_api_client_http_LowLevelHttpResponse_disconnect__), then close the HTTP response
content using [#ignore](https://docs.cloud.google.com/java/docs/reference/google-http-client/latest/com.google.api.client.http.HttpResponse#com_google_api_client_http_HttpResponse_ignore_).

| **Exceptions** ||
|---|---|
| **Type** | **Description** |
| `https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html` |   |

### download(OutputStream outputStream)

    public void download(OutputStream outputStream)

Writes the content of the HTTP response into the given destination output stream.

Sample usage:

HttpRequest request = requestFactory.buildGetRequest(
new GenericUrl("<https://www.google.com/images/srpr/logo3w.png>"));
OutputStream outputStream = new FileOutputStream(new File("/tmp/logo3w.png"));
try {
HttpResponse response = request.execute();
response.download(outputStream);
} finally {
outputStream.close();
}

This method closes the content of the HTTP response from [#getContent()](https://docs.cloud.google.com/java/docs/reference/google-http-client/latest/com.google.api.client.http.HttpResponse#com_google_api_client_http_HttpResponse_getContent__).

This method does not close the given output stream.

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `outputStream` | `https://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html` destination output stream |

| **Exceptions** ||
|---|---|
| **Type** | **Description** |
| `https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html` | I/O exception |

### getContent()

    public InputStream getContent()

Returns the content of the HTTP response.

The result is cached, so subsequent calls will be fast.

Callers should call InputStream#close after the returned [InputStream](https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html) is no
longer needed. Example usage:

InputStream is = response.getContent();
try {
// Process the input stream..
} finally {
is.close();
}

[HttpResponse#disconnect](https://docs.cloud.google.com/java/docs/reference/google-http-client/latest/com.google.api.client.http.HttpResponse#com_google_api_client_http_HttpResponse_disconnect_) does not have to be called if the content is closed.

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html` | input stream content of the HTTP response or `null` for none |

| **Exceptions** ||
|---|---|
| **Type** | **Description** |
| `https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html` | I/O exception |

### getContentCharset()

    public Charset getContentCharset()

Returns the [Charset](https://docs.oracle.com/javase/8/docs/api/java/nio/charset/Charset.html) specified in the Content-Type of this response or the ISO-8859-1
charset as a default.

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.oracle.com/javase/8/docs/api/java/nio/charset/Charset.html` |   |

### getContentEncoding()

    public String getContentEncoding()

Returns the content encoding or `null` for none.

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.oracle.com/javase/8/docs/api/java/lang/String.html` |   |

### getContentLoggingLimit()

    public int getContentLoggingLimit()

Returns the limit to the content size that will be logged during [#getContent()](https://docs.cloud.google.com/java/docs/reference/google-http-client/latest/com.google.api.client.http.HttpResponse#com_google_api_client_http_HttpResponse_getContent__).

Content will only be logged if [#isLoggingEnabled](https://docs.cloud.google.com/java/docs/reference/google-http-client/latest/com.google.api.client.http.HttpResponse#com_google_api_client_http_HttpResponse_isLoggingEnabled_) is `true`.

If the content size is greater than this limit then it will not be logged.

Can be set to `0` to disable content logging. This is useful for example if content
has sensitive data such as authentication information.

Defaults to [HttpRequest#getContentLoggingLimit()](https://docs.cloud.google.com/java/docs/reference/google-http-client/latest/com.google.api.client.http.HttpRequest#com_google_api_client_http_HttpRequest_getContentLoggingLimit__).

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html` |   |

### getContentType()

    public String getContentType()

Returns the content type or `null` for none.

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.oracle.com/javase/8/docs/api/java/lang/String.html` |   |

### getHeaders()

    public HttpHeaders getHeaders()

Returns the HTTP response headers.

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.cloud.google.com/java/docs/reference/google-http-client/latest/com.google.api.client.http.HttpHeaders` |   |

### getMediaType()

    public HttpMediaType getMediaType()

Returns the parsed Content-Type in form of a [HttpMediaType](https://docs.cloud.google.com/java/docs/reference/google-http-client/latest/com.google.api.client.http.HttpMediaType) or `null` if no
content-type was set.

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.cloud.google.com/java/docs/reference/google-http-client/latest/com.google.api.client.http.HttpMediaType` |   |

### getRequest()

    public HttpRequest getRequest()

Returns the HTTP request.

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.cloud.google.com/java/docs/reference/google-http-client/latest/com.google.api.client.http.HttpRequest` |   |

### getStatusCode()

    public int getStatusCode()

Returns the HTTP status code or `0` for none.

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html` |   |

### getStatusMessage()

    public String getStatusMessage()

Returns the HTTP status message or `null` for none.

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.oracle.com/javase/8/docs/api/java/lang/String.html` |   |

### getTransport()

    public HttpTransport getTransport()

Returns the HTTP transport.

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.cloud.google.com/java/docs/reference/google-http-client/latest/com.google.api.client.http.HttpTransport` |   |

### ignore()

    public void ignore()

Closes the content of the HTTP response from [#getContent()](https://docs.cloud.google.com/java/docs/reference/google-http-client/latest/com.google.api.client.http.HttpResponse#com_google_api_client_http_HttpResponse_getContent__), ignoring any content.

| **Exceptions** ||
|---|---|
| **Type** | **Description** |
| `https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html` |   |

### isLoggingEnabled()

    public boolean isLoggingEnabled()

Returns whether logging should be enabled on this response.

Defaults to [HttpRequest#isLoggingEnabled()](https://docs.cloud.google.com/java/docs/reference/google-http-client/latest/com.google.api.client.http.HttpRequest#com_google_api_client_http_HttpRequest_isLoggingEnabled__).

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html` |   |

### isSuccessStatusCode()

    public boolean isSuccessStatusCode()

Returns whether received a successful HTTP status code `>= 200 && < 300` (see [#getStatusCode()](https://docs.cloud.google.com/java/docs/reference/google-http-client/latest/com.google.api.client.http.HttpResponse#com_google_api_client_http_HttpResponse_getStatusCode__)).

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html` |   |

### parseAs(Type dataType)

    public Object parseAs(Type dataType)

Parses the content of the HTTP response from [#getContent()](https://docs.cloud.google.com/java/docs/reference/google-http-client/latest/com.google.api.client.http.HttpResponse#com_google_api_client_http_HttpResponse_getContent__) and reads it into a data
type of key/value pairs using the parser returned by [HttpRequest#getParser()](https://docs.cloud.google.com/java/docs/reference/google-http-client/latest/com.google.api.client.http.HttpRequest#com_google_api_client_http_HttpRequest_getParser__).

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `dataType` | `https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html` |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html` | parsed data type instance or `null` for no content |

| **Exceptions** ||
|---|---|
| **Type** | **Description** |
| `https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html` |   |

### parseAsString()

    public String parseAsString()

Parses the content of the HTTP response from [#getContent()](https://docs.cloud.google.com/java/docs/reference/google-http-client/latest/com.google.api.client.http.HttpResponse#com_google_api_client_http_HttpResponse_getContent__) and reads it into a string.

Since this method returns `""` for no content, a simpler check for no content is to
check if [#getContent()](https://docs.cloud.google.com/java/docs/reference/google-http-client/latest/com.google.api.client.http.HttpResponse#com_google_api_client_http_HttpResponse_getContent__) is `null`.

All content is read from the input content stream rather than being limited by the
Content-Length. For the character set, it follows the specification by parsing the "charset"
parameter of the Content-Type header or by default `"ISO-8859-1"` if the parameter is
missing.

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.oracle.com/javase/8/docs/api/java/lang/String.html` | parsed string or `""` for no content |

| **Exceptions** ||
|---|---|
| **Type** | **Description** |
| `https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html` | I/O exception |

### setContentLoggingLimit(int contentLoggingLimit)

    public HttpResponse setContentLoggingLimit(int contentLoggingLimit)

Set the limit to the content size that will be logged during [#getContent()](https://docs.cloud.google.com/java/docs/reference/google-http-client/latest/com.google.api.client.http.HttpResponse#com_google_api_client_http_HttpResponse_getContent__).

Content will only be logged if [#isLoggingEnabled](https://docs.cloud.google.com/java/docs/reference/google-http-client/latest/com.google.api.client.http.HttpResponse#com_google_api_client_http_HttpResponse_isLoggingEnabled_) is `true`.

If the content size is greater than this limit then it will not be logged.

Can be set to `0` to disable content logging. This is useful for example if content
has sensitive data such as authentication information.

Defaults to [HttpRequest#getContentLoggingLimit()](https://docs.cloud.google.com/java/docs/reference/google-http-client/latest/com.google.api.client.http.HttpRequest#com_google_api_client_http_HttpRequest_getContentLoggingLimit__).

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `contentLoggingLimit` | `https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html` |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.cloud.google.com/java/docs/reference/google-http-client/latest/com.google.api.client.http.HttpResponse` |   |

### setLoggingEnabled(boolean loggingEnabled)

    public HttpResponse setLoggingEnabled(boolean loggingEnabled)

Sets whether logging should be enabled on this response.

Defaults to [HttpRequest#isLoggingEnabled()](https://docs.cloud.google.com/java/docs/reference/google-http-client/latest/com.google.api.client.http.HttpRequest#com_google_api_client_http_HttpRequest_isLoggingEnabled__).

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `loggingEnabled` | `https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html` |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.cloud.google.com/java/docs/reference/google-http-client/latest/com.google.api.client.http.HttpResponse` |   |