Package com.brightcove.player.network
Class HttpService
- java.lang.Object
-
- com.brightcove.player.network.HttpService
-
public class HttpService extends java.lang.ObjectHttpService provides the basic tools to construct URLs properly, and issue HTTP requests, especially those that yield a JSON response.
-
-
Field Summary
Fields Modifier and Type Field Description static intDEFAULT_CONNECT_TIMEOUTDefault connection timeout used by HttpService if none is givenstatic intDEFAULT_READ_TIMEOUTDefault read timeout used by HttpService if none is givenstatic java.lang.StringTAG
-
Constructor Summary
Constructors Constructor Description HttpService()HttpService When using the default constructor, DEFAULT_CONNECT_TIMEOUT and DEFAULT_READ_TIMEOUT are used for the timeout values.HttpService(int connectTimeout, int readTimeout)HttpService Provides overrides for the connection and read timeout values on instantiation.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static java.net.URIbuildURIWithQueryParameters(java.lang.String baseUri, java.util.Map<java.lang.String,java.lang.Object> parameters)Convenience method to construct a URL object from a base URL string and a Map of query string parameters.java.lang.StringdoDeleteRequest(java.net.URI uri, java.util.Map<java.lang.String,java.lang.String> headers)Performs an HTTP PUT request using the given URI.java.lang.StringdoGetRequest(java.net.URI uri)Performs an HTTP GET request using the given URI.java.lang.StringdoGetRequest(java.net.URI uri, java.util.Map<java.lang.String,java.lang.String> headers)Performs an HTTP GET request using the given URI.android.graphics.BitmapdoImageGetRequest(java.net.URI uri)Performs and HTTP GET request expecting a bitmap image file in the response.android.graphics.BitmapdoImageGetRequest(java.net.URI uri, int maxWidth, int maxHeight)Performs and HTTP GET request expecting a bitmap image file in the response.org.json.JSONObjectdoJSONGetRequest(java.net.URI uri)Performs an HTTP GET request assuming that the response body will contain a valid JSON document.org.json.JSONObjectdoJSONGetRequest(java.net.URI uri, java.util.Map<java.lang.String,java.lang.String> headers)Performs an HTTP GET request assuming that the response body will contain a valid JSON document.org.json.JSONObjectdoJSONPostRequest(java.net.URI uri)Performs an HTTP POST request assuming that the response body will contain a valid JSON document.org.json.JSONObjectdoJSONPostRequest(java.net.URI uri, java.util.Map<java.lang.String,java.lang.String> headers)Performs an HTTP POST request assuming that the response body will contain a valid JSON document.org.json.JSONObjectdoJSONPostRequest(java.net.URI uri, java.util.Map<java.lang.String,java.lang.String> headers, java.lang.String requestBody)java.lang.StringdoPostRequest(java.net.URI uri)Performs an HTTP POST request using the given URI.java.lang.StringdoPostRequest(java.net.URI uri, java.util.Map<java.lang.String,java.lang.String> headers)Performs an HTTP POST request using the given URI.intgetConnectTimeout()Retrieves the connection timeout used by this HttpService.intgetReadTimeout()Retrieves the read timeout used by this HttpService.static java.lang.StringinputStreamToString(java.io.InputStream inputStream)Reads all data from the given InputStream and converts to a String (Uses StringBuilder).static org.json.JSONObjectparseToJSONObject(java.lang.String jsonString)Parses given string containing JSON data into a JSONObject which provides an interface for extracting JSON data.static java.lang.StringreaderToString(java.io.Reader reader)Reads all data from the given Reader and converts to a String (Uses StringBuilder).HttpResponserunDeleteRequest(java.net.URI uri, java.util.Map<java.lang.String,java.lang.String> headers)This is the same as {doDeleteRequest(URI, Map)} but returns a {{HttpResponse} instead.HttpResponserunGetRequest(java.net.URI uri)This is the same as {doGetRequest(URI)} but returns a {{HttpResponse} instead.HttpResponserunGetRequest(java.net.URI uri, java.util.Map<java.lang.String,java.lang.String> headers)This is the same as {doGetRequest(URI, Map)} but returns a {{HttpResponse} instead.HttpResponserunJSONGetRequest(java.net.URI uri)Same as {doJSONGetRequest(URI)} but this returns a {{HttpResponse}} instead.HttpResponserunJSONGetRequest(java.net.URI uri, java.util.Map<java.lang.String,java.lang.String> headers)Same as {doJSONGetRequest(URI, Map))}} but this returns a {{HttpResponse}} instead.HttpResponserunJSONPostRequest(java.net.URI uri)Same as {doJSONPostRequest(URI)} but this returns a {{HttpResponse}} instead.HttpResponserunJSONPostRequest(java.net.URI uri, java.util.Map<java.lang.String,java.lang.String> headers)Same as {doJSONPostRequest(URI, Map)} but this returns a {{HttpResponse}} instead.HttpResponserunJSONPostRequest(java.net.URI uri, java.util.Map<java.lang.String,java.lang.String> headers, java.lang.String requestBody)HttpResponserunPostRequest(java.net.URI uri, java.util.Map<java.lang.String,java.lang.String> headers)This is the same as {doPostRequest(URI)} but returns a {{HttpResponse} instead.
-
-
-
Field Detail
-
TAG
public static final java.lang.String TAG
-
DEFAULT_CONNECT_TIMEOUT
public static final int DEFAULT_CONNECT_TIMEOUT
Default connection timeout used by HttpService if none is given- See Also:
- Constant Field Values
-
DEFAULT_READ_TIMEOUT
public static final int DEFAULT_READ_TIMEOUT
Default read timeout used by HttpService if none is given- See Also:
- Constant Field Values
-
-
Constructor Detail
-
HttpService
public HttpService()
HttpService When using the default constructor, DEFAULT_CONNECT_TIMEOUT and DEFAULT_READ_TIMEOUT are used for the timeout values.
-
HttpService
public HttpService(int connectTimeout, int readTimeout)HttpService Provides overrides for the connection and read timeout values on instantiation. Please note: Setting override values to less than the DEFAULT_CONNECT_TIMEOUT and DEFAULT_READ_TIMEOUT values can result in unexpected request timeouts. Setting override values to less than 1 will force the use of DEFAULT_CONNECT_TIMEOUT and DEFAULT_READ_TIMEOUT as timeout values.- Parameters:
connectTimeout- The connection timeout for the underlying HttpURLConnection, in milliseconds. The default value is 10000 milliseconds.readTimeout- The read timeout for the underlying HttpURLConnection, in milliseconds. The default value is 10000 milliseconds- See Also:
HttpURLConnection
-
-
Method Detail
-
getConnectTimeout
public int getConnectTimeout()
Retrieves the connection timeout used by this HttpService.- Returns:
- the connection timeout in milliseconds
-
getReadTimeout
public int getReadTimeout()
Retrieves the read timeout used by this HttpService.- Returns:
- the read timeout in milliseconds
-
buildURIWithQueryParameters
public static java.net.URI buildURIWithQueryParameters(java.lang.String baseUri, java.util.Map<java.lang.String,java.lang.Object> parameters) throws java.net.URISyntaxException, java.io.UnsupportedEncodingExceptionConvenience method to construct a URL object from a base URL string and a Map of query string parameters.- Parameters:
baseUri- the scheme, hostname, and path portions of the URI to constructparameters- the query string parameters to be included in the URI (will be URI encoded)- Returns:
- the fully populated URI
- Throws:
java.net.URISyntaxException- if the base URI is malformedjava.io.UnsupportedEncodingException
-
doGetRequest
public java.lang.String doGetRequest(java.net.URI uri) throws java.io.IOExceptionPerforms an HTTP GET request using the given URI.- Parameters:
uri- the request URI- Returns:
- a String containing the response body of the HTTP GET request
- Throws:
java.io.IOException
-
runGetRequest
public HttpResponse runGetRequest(java.net.URI uri) throws java.io.IOException
This is the same as {doGetRequest(URI)} but returns a {{HttpResponse} instead.- Parameters:
uri- the request URI- Returns:
- a String containing the response body of the HTTP GET request
- Throws:
java.io.IOException
-
doGetRequest
public java.lang.String doGetRequest(java.net.URI uri, java.util.Map<java.lang.String,java.lang.String> headers) throws java.io.IOExceptionPerforms an HTTP GET request using the given URI.- Parameters:
uri- the request URI- Returns:
- a String containing the response body of the HTTP GET request
- Throws:
java.io.IOException
-
runGetRequest
public HttpResponse runGetRequest(java.net.URI uri, java.util.Map<java.lang.String,java.lang.String> headers) throws java.io.IOException
This is the same as {doGetRequest(URI, Map)} but returns a {{HttpResponse} instead.- Parameters:
uri- the request URI- Returns:
- a String containing the response body of the HTTP GET request
- Throws:
java.io.IOException
-
doPostRequest
public java.lang.String doPostRequest(java.net.URI uri) throws java.io.IOExceptionPerforms an HTTP POST request using the given URI.- Parameters:
uri- the request URI- Returns:
- a String containing the response body of the HTTP POST request
- Throws:
java.io.IOException
-
runPostRequest
public HttpResponse runPostRequest(java.net.URI uri, java.util.Map<java.lang.String,java.lang.String> headers) throws java.io.IOException
This is the same as {doPostRequest(URI)} but returns a {{HttpResponse} instead.- Parameters:
uri- the request URI- Returns:
- a String containing the response body of the HTTP POST request
- Throws:
java.io.IOException
-
doPostRequest
public java.lang.String doPostRequest(java.net.URI uri, java.util.Map<java.lang.String,java.lang.String> headers) throws java.io.IOExceptionPerforms an HTTP POST request using the given URI.- Parameters:
uri- the request URI- Returns:
- a String containing the response body of the HTTP POST request
- Throws:
java.io.IOException
-
doDeleteRequest
public java.lang.String doDeleteRequest(java.net.URI uri, java.util.Map<java.lang.String,java.lang.String> headers) throws java.io.IOExceptionPerforms an HTTP PUT request using the given URI.- Parameters:
uri- the request URI- Returns:
- a String containing the response body of the HTTP PUT request
- Throws:
java.io.IOException
-
runDeleteRequest
public HttpResponse runDeleteRequest(java.net.URI uri, java.util.Map<java.lang.String,java.lang.String> headers) throws java.io.IOException
This is the same as {doDeleteRequest(URI, Map)} but returns a {{HttpResponse} instead.- Parameters:
uri- the request URI- Returns:
- a String containing the response body of the HTTP PUT request
- Throws:
java.io.IOException
-
doImageGetRequest
public android.graphics.Bitmap doImageGetRequest(java.net.URI uri) throws java.io.IOExceptionPerforms and HTTP GET request expecting a bitmap image file in the response.- Parameters:
uri- the request URI- Returns:
- a Bitmap decoded from the response content stream
- Throws:
java.io.IOException
-
doImageGetRequest
public android.graphics.Bitmap doImageGetRequest(java.net.URI uri, int maxWidth, int maxHeight) throws java.io.IOExceptionPerforms and HTTP GET request expecting a bitmap image file in the response.- Parameters:
uri- the request URImaxWidth- The maximum width of the target view.maxHeight- The maximum height of the target view.- Returns:
- a Bitmap decoded from the response content stream
- Throws:
java.io.IOException
-
doJSONGetRequest
public org.json.JSONObject doJSONGetRequest(java.net.URI uri) throws java.io.IOException, org.json.JSONExceptionPerforms an HTTP GET request assuming that the response body will contain a valid JSON document. The JSON document is parsed and returned as a JSONObject.- Parameters:
uri- the request URI- Returns:
- a JSONObject created by parsing the HTTP response, or null if the response is empty
- Throws:
java.io.IOExceptionorg.json.JSONException
-
doJSONGetRequest
public org.json.JSONObject doJSONGetRequest(java.net.URI uri, java.util.Map<java.lang.String,java.lang.String> headers) throws java.io.IOException, org.json.JSONExceptionPerforms an HTTP GET request assuming that the response body will contain a valid JSON document. The JSON document is parsed and returned as a JSONObject.- Parameters:
uri- the request URIheaders- the request headers- Returns:
- a JSONObject created by parsing the HTTP response, or null if the response is empty
- Throws:
java.io.IOExceptionorg.json.JSONException
-
doJSONPostRequest
public org.json.JSONObject doJSONPostRequest(java.net.URI uri) throws java.io.IOException, org.json.JSONExceptionPerforms an HTTP POST request assuming that the response body will contain a valid JSON document. The JSON document is parsed and returned as a JSONObject.- Parameters:
uri- the request URI- Returns:
- a JSONObject created by parsing the HTTP response, or null if the response is empty
- Throws:
java.io.IOExceptionorg.json.JSONException
-
doJSONPostRequest
public org.json.JSONObject doJSONPostRequest(java.net.URI uri, java.util.Map<java.lang.String,java.lang.String> headers) throws java.io.IOException, org.json.JSONExceptionPerforms an HTTP POST request assuming that the response body will contain a valid JSON document. The JSON document is parsed and returned as a JSONObject.- Parameters:
uri- the request URIheaders- the request headers- Returns:
- a JSONObject created by parsing the HTTP response, or null if the response is empty
- Throws:
java.io.IOExceptionorg.json.JSONException
-
doJSONPostRequest
public org.json.JSONObject doJSONPostRequest(java.net.URI uri, java.util.Map<java.lang.String,java.lang.String> headers, java.lang.String requestBody) throws java.io.IOException, org.json.JSONException- Throws:
java.io.IOExceptionorg.json.JSONException
-
runJSONGetRequest
public HttpResponse runJSONGetRequest(java.net.URI uri) throws java.io.IOException, org.json.JSONException
Same as {doJSONGetRequest(URI)} but this returns a {{HttpResponse}} instead.- Parameters:
uri- the request URI- Returns:
- a JSONObject created by parsing the HTTP response, or null if the response is empty
- Throws:
java.io.IOExceptionorg.json.JSONException
-
runJSONGetRequest
public HttpResponse runJSONGetRequest(java.net.URI uri, java.util.Map<java.lang.String,java.lang.String> headers) throws java.io.IOException, org.json.JSONException
Same as {doJSONGetRequest(URI, Map))}} but this returns a {{HttpResponse}} instead.- Parameters:
uri- the request URIheaders- the request headers- Returns:
- a JSONObject created by parsing the HTTP response, or null if the response is empty
- Throws:
java.io.IOExceptionorg.json.JSONException
-
runJSONPostRequest
public HttpResponse runJSONPostRequest(java.net.URI uri) throws java.io.IOException, org.json.JSONException
Same as {doJSONPostRequest(URI)} but this returns a {{HttpResponse}} instead.- Parameters:
uri- the request URI- Returns:
- a JSONObject created by parsing the HTTP response, or null if the response is empty
- Throws:
java.io.IOExceptionorg.json.JSONException
-
runJSONPostRequest
public HttpResponse runJSONPostRequest(java.net.URI uri, java.util.Map<java.lang.String,java.lang.String> headers) throws java.io.IOException, org.json.JSONException
Same as {doJSONPostRequest(URI, Map)} but this returns a {{HttpResponse}} instead.- Parameters:
uri- the request URIheaders- the request headers- Returns:
- a JSONObject created by parsing the HTTP response, or null if the response is empty
- Throws:
java.io.IOExceptionorg.json.JSONException
-
runJSONPostRequest
public HttpResponse runJSONPostRequest(java.net.URI uri, java.util.Map<java.lang.String,java.lang.String> headers, java.lang.String requestBody) throws java.io.IOException, org.json.JSONException
- Throws:
java.io.IOExceptionorg.json.JSONException
-
inputStreamToString
public static java.lang.String inputStreamToString(java.io.InputStream inputStream) throws java.io.IOExceptionReads all data from the given InputStream and converts to a String (Uses StringBuilder).- Parameters:
inputStream- InputStream from which String should be built- Returns:
- a String representation of the data provided by the InputStream
- Throws:
java.io.IOException
-
readerToString
public static java.lang.String readerToString(java.io.Reader reader) throws java.io.IOExceptionReads all data from the given Reader and converts to a String (Uses StringBuilder).- Parameters:
reader- Reader from which String should be built- Returns:
- a String representation of the data provided by the Reader
- Throws:
java.io.IOException
-
parseToJSONObject
public static org.json.JSONObject parseToJSONObject(java.lang.String jsonString) throws org.json.JSONExceptionParses given string containing JSON data into a JSONObject which provides an interface for extracting JSON data. Note that this method only supports parsing JSON strings that are represented by a top-level object, i.e., starts with a curly brace. Top level arrays are not supported by this method (i.e., starts with square bracket).- Parameters:
jsonString- the JSON object data to be parsed (must not be null or empty)- Returns:
- the parsed JSONObject
- Throws:
org.json.JSONException- if there are any issues parsing the JSON
-
-