package com.mopub.common;
import com.mopub.common.util.ResponseHeader;
import com.mopub.common.util.Streams;
import org.apache.http.Header;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import java.io.BufferedInputStream;
import java.io.ByteArrayOutputStream;
public class DownloadResponse {
private byte[] mBytes = new byte[0];
private final int mStatusCode;
private final long mContentLength;
private final Header[] mHeaders;
public DownloadResponse(final HttpResponse httpResponse) throws Exception {
final ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
BufferedInputStream inputStream = null;
try {
HttpEntity httpEntity = httpResponse.getEntity();
if (httpEntity != null) {
inputStream = new BufferedInputStream(httpEntity.getContent());
Streams.copyContent(inputStream, outputStream);
mBytes = outputStream.toByteArray();
}
} finally {
Streams.closeStream(inputStream);
Streams.closeStream(outputStream);
}
mStatusCode = httpResponse.getStatusLine().getStatusCode();
mContentLength = mBytes.length;
mHeaders = httpResponse.getAllHeaders();
}
public byte[] getByteArray() {
return mBytes;
}
public int getStatusCode() {
return mStatusCode;
}
public long getContentLength() {
return mContentLength;
}
public String getFirstHeader(final ResponseHeader responseHeader) {
for (final Header header : mHeaders) {
if (header.getName().equalsIgnoreCase(responseHeader.getKey())) {
return header.getValue();
}
}
return null;
}
}