Class SpotifyHttpManager

java.lang.Object
se.michaelthelin.spotify.SpotifyHttpManager
All Implemented Interfaces:
IHttpManager

public class SpotifyHttpManager extends Object implements IHttpManager
Default implementation of the IHttpManager interface. Manages HTTP requests to the Spotify Web API using Apache HttpClient.
  • Constructor Details

    • SpotifyHttpManager

      public SpotifyHttpManager(SpotifyHttpManager.Builder builder)
      Construct a new SpotifyHttpManager instance.
      Parameters:
      builder - The builder.
  • Method Details

    • makeUri

      public static URI makeUri(String uriString)
      Creates a URI from a string, handling any syntax exceptions.
      Parameters:
      uriString - the URI string to parse
      Returns:
      the parsed URI, or null if the string is invalid
    • getConnectionManager

      public org.apache.hc.client5.http.io.HttpClientConnectionManager getConnectionManager()
      Gets the HTTP client connection manager.
      Returns:
      the connection manager
    • getProxy

      public org.apache.hc.core5.http.HttpHost getProxy()
      Gets the HTTP proxy configuration.
      Returns:
      the HTTP proxy host, or null if no proxy is configured
    • getProxyCredentials

      public org.apache.hc.client5.http.auth.UsernamePasswordCredentials getProxyCredentials()
      Gets the proxy authentication credentials.
      Returns:
      the proxy credentials, or null if no credentials are configured
    • getCacheMaxEntries

      public Integer getCacheMaxEntries()
      Gets the maximum number of cache entries.
      Returns:
      the maximum cache entries
    • getCacheMaxObjectSize

      public Integer getCacheMaxObjectSize()
      Gets the maximum size of cached objects.
      Returns:
      the maximum cache object size
    • getCacheShared

      public Boolean getCacheShared()
      Gets whether the cache is shared between multiple HTTP clients.
      Returns:
      true if the cache is shared, false otherwise
    • getConnectionRequestTimeout

      public Integer getConnectionRequestTimeout()
      Gets the connection request timeout in milliseconds.
      Returns:
      the connection request timeout
    • getSocketTimeout

      public Integer getSocketTimeout()
      Gets the socket timeout in milliseconds.
      Returns:
      the socket timeout
    • get

      public String get(URI uri, org.apache.hc.core5.http.Header[] headers) throws IOException, SpotifyWebApiException, org.apache.hc.core5.http.ParseException
      Description copied from interface: IHttpManager
      Perform an HTTP GET request to the specified URL.
      Specified by:
      get in interface IHttpManager
      Parameters:
      uri - The GET request's URI.
      headers - The GET request's Headers.
      Returns:
      A string containing the GET request's response body.
      Throws:
      IOException - In case of networking issues.
      SpotifyWebApiException - The Web API returned an error further specified in this exception's root cause.
      org.apache.hc.core5.http.ParseException - The response could not be parsed as a string.
    • post

      public String post(URI uri, org.apache.hc.core5.http.Header[] headers, org.apache.hc.core5.http.HttpEntity body) throws IOException, SpotifyWebApiException, org.apache.hc.core5.http.ParseException
      Description copied from interface: IHttpManager
      Perform an HTTP POST request to the specified URL.
      Specified by:
      post in interface IHttpManager
      Parameters:
      uri - The POST request's URI.
      headers - The POST request's Headers.
      body - The PUT request's body as a HttpEntity.
      Returns:
      A string containing the POST request's response body.
      Throws:
      IOException - In case of networking issues.
      SpotifyWebApiException - The Web API returned an error further specified in this exception's root cause.
      org.apache.hc.core5.http.ParseException - The response could not be parsed as a string.
    • put

      public String put(URI uri, org.apache.hc.core5.http.Header[] headers, org.apache.hc.core5.http.HttpEntity body) throws IOException, SpotifyWebApiException, org.apache.hc.core5.http.ParseException
      Description copied from interface: IHttpManager
      Perform an HTTP PUT request to the specified URL.
      Specified by:
      put in interface IHttpManager
      Parameters:
      uri - The PUT request's URI.
      headers - The PUT request's Headers.
      body - The PUT request's body as a HttpEntity.
      Returns:
      A string containing the PUT request's response body.
      Throws:
      IOException - In case of networking issues.
      SpotifyWebApiException - The Web API returned an error further specified in this exception's root cause.
      org.apache.hc.core5.http.ParseException - The response could not be parsed as a string.
    • delete

      public String delete(URI uri, org.apache.hc.core5.http.Header[] headers, org.apache.hc.core5.http.HttpEntity body) throws IOException, SpotifyWebApiException, org.apache.hc.core5.http.ParseException
      Description copied from interface: IHttpManager
      Perform an HTTP DELETE request to the specified URL.
      Specified by:
      delete in interface IHttpManager
      Parameters:
      uri - The DELETE request's URI.
      headers - The DELETE request's Headers.
      body - The DELETE request's body as a HttpEntity.
      Returns:
      A string containing the DELETE request's response body.
      Throws:
      IOException - In case of networking issues.
      SpotifyWebApiException - The Web API returned an error further specified in this exception's root cause.
      org.apache.hc.core5.http.ParseException - The response could not be parsed as a string.