public interface HttpDataSource extends DataSource
DataSource.| Modifier and Type | Interface and Description |
|---|---|
static class |
HttpDataSource.BaseFactory
Base implementation of
HttpDataSource.Factory that sets default request properties. |
static interface |
HttpDataSource.Factory
A factory for
HttpDataSource instances. |
static class |
HttpDataSource.HttpDataSourceException
Thrown when an error is encountered when trying to read from a
HttpDataSource. |
static class |
HttpDataSource.InvalidContentTypeException
Thrown when the content type is invalid.
|
static class |
HttpDataSource.InvalidResponseCodeException
Thrown when an attempt to open a connection results in a response code not in the 2xx range.
|
static class |
HttpDataSource.RequestProperties
Stores HTTP request properties (aka HTTP headers) and provides methods to modify the headers
in a thread safe way to avoid the potential of creating snapshots of an inconsistent or
unintended state.
|
| Modifier and Type | Field and Description |
|---|---|
static Predicate<java.lang.String> |
REJECT_PAYWALL_TYPES
A
Predicate that rejects content types often used for pay-walls. |
| Modifier and Type | Method and Description |
|---|---|
void |
clearAllRequestProperties()
Clears all request headers that were set by
setRequestProperty(String, String). |
void |
clearRequestProperty(java.lang.String name)
Clears the value of a request header.
|
void |
close()
Closes the source.
|
java.util.Map<java.lang.String,java.util.List<java.lang.String>> |
getResponseHeaders()
When the source is open, returns the response headers associated with the last
DataSource.open(com.google.android.exoplayer2.upstream.DataSpec)
call. |
long |
open(DataSpec dataSpec)
Opens the source to read the specified data.
|
int |
read(byte[] buffer,
int offset,
int readLength)
Reads up to
readLength bytes of data and stores them into buffer, starting at
index offset. |
void |
setRequestProperty(java.lang.String name,
java.lang.String value)
Sets the value of a request header.
|
addTransferListener, getUrilong open(DataSpec dataSpec) throws HttpDataSource.HttpDataSourceException
DataSource
Note: If an IOException is thrown, callers must still call DataSource.close() to ensure
that any partial effects of the invocation are cleaned up.
open in interface DataSourcedataSpec - Defines the data to be read.DataSpec.length equals C.LENGTH_UNSET) this value
is the resolved length of the request, or C.LENGTH_UNSET if the length is still
unresolved. For all other requests, the value returned will be equal to the request's
DataSpec.length.HttpDataSource.HttpDataSourceExceptionvoid close()
throws HttpDataSource.HttpDataSourceException
DataSource
Note: This method must be called even if the corresponding call to DataSource.open(DataSpec)
threw an IOException. See DataSource.open(DataSpec) for more details.
close in interface DataSourceHttpDataSource.HttpDataSourceExceptionint read(byte[] buffer,
int offset,
int readLength)
throws HttpDataSource.HttpDataSourceException
DataSourcereadLength bytes of data and stores them into buffer, starting at
index offset.
If readLength is zero then 0 is returned. Otherwise, if no data is available because
the end of the opened range has been reached, then C.RESULT_END_OF_INPUT is returned.
Otherwise, the call will block until at least one byte of data has been read and the number of
bytes read is returned.
read in interface DataSourcebuffer - The buffer into which the read data should be stored.offset - The start offset into buffer at which data should be written.readLength - The maximum number of bytes to read.C.RESULT_END_OF_INPUT if no data is available
because the end of the opened range has been reached.HttpDataSource.HttpDataSourceExceptionvoid setRequestProperty(java.lang.String name,
java.lang.String value)
name - The name of the header field.value - The value of the field.void clearRequestProperty(java.lang.String name)
name - The name of the header field.void clearAllRequestProperties()
setRequestProperty(String, String).java.util.Map<java.lang.String,java.util.List<java.lang.String>> getResponseHeaders()
DataSourceDataSource.open(com.google.android.exoplayer2.upstream.DataSpec)
call. Otherwise, returns an empty map.getResponseHeaders in interface DataSource