blob: 9a9294fee034acb6d58603bea3a88c947ee98b0a [file] [log] [blame]
/*
* Copyright (C) 2017 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.android.volley.toolbox;
import com.android.volley.Header;
import java.io.InputStream;
import java.util.Collections;
import java.util.List;
/** A response from an HTTP server. */
public final class HttpResponse {
private final int mStatusCode;
private final List<Header> mHeaders;
private final int mContentLength;
private final InputStream mContent;
/**
* Construct a new HttpResponse for an empty response body.
*
* @param statusCode the HTTP status code of the response
* @param headers the response headers
*/
public HttpResponse(int statusCode, List<Header> headers) {
this(statusCode, headers, /* contentLength= */ -1, /* content= */ null);
}
/**
* Construct a new HttpResponse.
*
* @param statusCode the HTTP status code of the response
* @param headers the response headers
* @param contentLength the length of the response content. Ignored if there is no content.
* @param content an {@link InputStream} of the response content. May be null to indicate that
* the response has no content.
*/
public HttpResponse(
int statusCode, List<Header> headers, int contentLength, InputStream content) {
mStatusCode = statusCode;
mHeaders = headers;
mContentLength = contentLength;
mContent = content;
}
/** Returns the HTTP status code of the response. */
public final int getStatusCode() {
return mStatusCode;
}
/** Returns the response headers. Must not be mutated directly. */
public final List<Header> getHeaders() {
return Collections.unmodifiableList(mHeaders);
}
/** Returns the length of the content. Only valid if {@link #getContent} is non-null. */
public final int getContentLength() {
return mContentLength;
}
/**
* Returns an {@link InputStream} of the response content. May be null to indicate that the
* response has no content.
*/
public final InputStream getContent() {
return mContent;
}
}