HttpDataSource
public interface HttpDataSource extends DataSource
CronetDataSource |
DataSource without intermediate buffer based on Cronet API set using UrlRequest. |
DefaultHttpDataSource |
An |
HttpEngineDataSource |
DataSource without intermediate buffer based on |
KtorDataSource |
An |
OkHttpDataSource |
An |
An HTTP DataSource.
Summary
Nested types |
|---|
@UnstableApiBase implementation of |
public final class HttpDataSource.CleartextNotPermittedException extends HttpDataSource.HttpDataSourceExceptionThrown when cleartext HTTP traffic is not permitted. |
public interface HttpDataSource.Factory extends DataSource.FactoryA factory for |
public class HttpDataSource.HttpDataSourceException extends DataSourceExceptionThrown when an error is encountered when trying to read from a |
@DocumentedThe type of operation that produced the error. |
public final class HttpDataSource.InvalidContentTypeException extends HttpDataSource.HttpDataSourceExceptionThrown when the content type is invalid. |
public final class HttpDataSource.InvalidResponseCodeException extends HttpDataSource.HttpDataSourceExceptionThrown when an attempt to open a connection results in a response code not in the 2xx range. |
@UnstableApiStores 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. |
Constants |
|
|---|---|
default static final Predicate<String> |
A |
Public methods |
|
|---|---|
abstract void |
Clears all request headers that were set by |
abstract void |
Clears the value of a request header. |
abstract void |
Closes the source. |
abstract int |
When the source is open, returns the HTTP response status code associated with the last |
abstract Map<String, List<String>> |
When the source is open, returns the response headers associated with the last |
abstract long |
@UnstableApiOpens the source to read the specified data. |
abstract int |
@UnstableApiReads up to |
abstract void |
@UnstableApiSets the value of a request header. |
Inherited methods |
||||
|---|---|---|---|---|
|
Constants
REJECT_PAYWALL_TYPES
@UnstableApi
default static final Predicate<String> REJECT_PAYWALL_TYPES
A Predicate that rejects content types often used for pay-walls.
Public methods
clearAllRequestProperties
@UnstableApi
abstract void clearAllRequestProperties()
Clears all request headers that were set by setRequestProperty.
clearRequestProperty
@UnstableApi
abstract void clearRequestProperty(String name)
Clears the value of a request header. The change will apply to subsequent connections established by the source.
| Parameters | |
|---|---|
String name |
The name of the header field. |
close
@UnstableApi
abstract void close()
Closes the source. This method must be called even if the corresponding call to open threw an IOException.
| Throws | |
|---|---|
java.io.IOException |
If an error occurs closing the source. |
androidx.media3.datasource.HttpDataSource.HttpDataSourceException |
getResponseCode
@UnstableApi
abstract int getResponseCode()
When the source is open, returns the HTTP response status code associated with the last open call. Otherwise, returns a negative value.
getResponseHeaders
@UnstableApi
abstract Map<String, List<String>> getResponseHeaders()
When the source is open, returns the response headers associated with the last open call. Otherwise, returns an empty map.
Key look-up in the returned map is case-insensitive.
open
@UnstableApi
abstract long open(DataSpec dataSpec)
Opens the source to read the specified data.
Note: HttpDataSource implementations are advised to set request headers passed via (in order of decreasing priority) the dataSpec, setRequestProperty and the default parameters set in the Factory.
read
@UnstableApi
abstract int read(byte[] buffer, int offset, int length)
Reads up to length bytes of data from the input.
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 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.
| Parameters | |
|---|---|
byte[] buffer |
A target array into which data should be written. |
int offset |
The offset into the target array at which to write. |
int length |
The maximum number of bytes to read from the input. |
| Returns | |
|---|---|
int |
The number of bytes read, or |
| Throws | |
|---|---|
java.io.IOException |
If an error occurs reading from the input. |
androidx.media3.datasource.HttpDataSource.HttpDataSourceException |
setRequestProperty
@UnstableApi
abstract void setRequestProperty(String name, String value)
Sets the value of a request header. The value will be used for subsequent connections established by the source.
Note: If the same header is set as a default parameter in the Factory, then the header value set with this method should be preferred when connecting with the data source. See open.