Commit 407dbf07 by olly Committed by Oliver Woodman

Add HttpDataSource.getResponseCode to provide the status code associated with…

Add HttpDataSource.getResponseCode to provide the status code associated with the most recent HTTP response.

PiperOrigin-RevId: 266218104
parent ad699b8f
......@@ -11,6 +11,8 @@
quality video can be loaded up to the full default buffer duration.
* Fix audio selection issue where languages are compared by bit rate
([#6335](https://github.com/google/ExoPlayer/issues/6335)).
* Add `HttpDataSource.getResponseCode` to provide the status code associated
with the most recent HTTP response.
### 2.10.4 ###
......
......@@ -300,6 +300,13 @@ public class CronetDataSource extends BaseDataSource implements HttpDataSource {
}
@Override
public int getResponseCode() {
return responseInfo == null || responseInfo.getHttpStatusCode() <= 0
? -1
: responseInfo.getHttpStatusCode();
}
@Override
public Map<String, List<String>> getResponseHeaders() {
return responseInfo == null ? Collections.emptyMap() : responseInfo.getAllHeaders();
}
......
......@@ -134,6 +134,11 @@ public class OkHttpDataSource extends BaseDataSource implements HttpDataSource {
}
@Override
public int getResponseCode() {
return response == null ? -1 : response.code();
}
@Override
public Map<String, List<String>> getResponseHeaders() {
return response == null ? Collections.emptyMap() : response.headers().toMultimap();
}
......
......@@ -82,6 +82,7 @@ public class DefaultHttpDataSource extends BaseDataSource implements HttpDataSou
private @Nullable HttpURLConnection connection;
private @Nullable InputStream inputStream;
private boolean opened;
private int responseCode;
private long bytesToSkip;
private long bytesToRead;
......@@ -253,6 +254,11 @@ public class DefaultHttpDataSource extends BaseDataSource implements HttpDataSou
}
@Override
public int getResponseCode() {
return connection == null || responseCode <= 0 ? -1 : responseCode;
}
@Override
public Map<String, List<String>> getResponseHeaders() {
return connection == null ? Collections.emptyMap() : connection.getHeaderFields();
}
......@@ -288,7 +294,6 @@ public class DefaultHttpDataSource extends BaseDataSource implements HttpDataSou
dataSpec, HttpDataSourceException.TYPE_OPEN);
}
int responseCode;
String responseMessage;
try {
responseCode = connection.getResponseCode();
......
......@@ -354,6 +354,12 @@ public interface HttpDataSource extends DataSource {
*/
void clearAllRequestProperties();
/**
* When the source is open, returns the HTTP response status code associated with the last {@link
* #open} call. Otherwise, returns a negative value.
*/
int getResponseCode();
@Override
Map<String, List<String>> getResponseHeaders();
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment