Class AbstractHttpClient

Object
AbstractHttpClient
All Implemented Interfaces:
HTTPClient
Direct Known Subclasses:
MultithreadedHttpClient, SimpleHttpClient

public abstract class AbstractHttpClient extends Object implements HTTPClient
A base class for HTTPClient, that implements everything except the get and post methods.
Author:
Andrea Aime - GeoSolutions
  • Field Details

    • user

      protected String user
    • password

      protected String password
    • extraParams

      protected Map<String,String> extraParams
    • connectTimeout

      protected int connectTimeout
    • readTimeout

      protected int readTimeout
    • tryGzip

      protected boolean tryGzip
  • Constructor Details

    • AbstractHttpClient

      public AbstractHttpClient()
  • Method Details

    • getUser

      public String getUser()
      Specified by:
      getUser in interface HTTPClient
      Returns:
      the HTTP BASIC Authentication user name, or null if not set
    • setUser

      public void setUser(String user)
      Specified by:
      setUser in interface HTTPClient
      Parameters:
      user - the HTTP BASIC Authentication user name
    • getPassword

      public String getPassword()
      Specified by:
      getPassword in interface HTTPClient
      Returns:
      the HTTP BASIC Authentication password, or null if not set
    • setExtraParams

      public void setExtraParams(Map<String,String> extraParams)
      Specified by:
      setExtraParams in interface HTTPClient
      Parameters:
      extraParams - the optional querystring ExtraParams to be appended to finalURL
    • getExtraParams

      public Map<String,String> getExtraParams()
      Description copied from interface: HTTPClient
      Optional query parameters.
      Specified by:
      getExtraParams in interface HTTPClient
      Returns:
      querystring ExtraParams, or emptyMap() if not set
    • setPassword

      public void setPassword(String password)
      Specified by:
      setPassword in interface HTTPClient
      Parameters:
      password - the HTTP BASIC Authentication password
    • getConnectTimeout

      public int getConnectTimeout()
      Specified by:
      getConnectTimeout in interface HTTPClient
      Returns:
      the tcp/ip connect timeout in seconds
    • setConnectTimeout

      public void setConnectTimeout(int connectTimeout)
      Specified by:
      setConnectTimeout in interface HTTPClient
      Parameters:
      connectTimeout - tcp/ip connect timeout in seconds
    • getReadTimeout

      public int getReadTimeout()
      Specified by:
      getReadTimeout in interface HTTPClient
      Returns:
      the socket read timeout in seconds
    • setReadTimeout

      public void setReadTimeout(int readTimeout)
      Specified by:
      setReadTimeout in interface HTTPClient
      Parameters:
      readTimeout - socket read timeout in seconds
    • setTryGzip

      public void setTryGzip(boolean tryGZIP)
      Specified by:
      setTryGzip in interface HTTPClient
      See Also:
    • isTryGzip

      public boolean isTryGzip()
      Specified by:
      isTryGzip in interface HTTPClient
      Returns:
      whether gzip content encoding will be attempted; defaults to false
      See Also:
    • appendURL

      protected static URL appendURL(URL oldUrl, Map<String,String> appendQuery) throws MalformedURLException
      Appends query parameters to an existing URL.
      Parameters:
      oldUrl - The original URL to which parameters will be appended.
      appendQuery - A map containing key-value pairs to be appended as query parameters.
      Returns:
      A new URL with the appended query parameters.
      Throws:
      MalformedURLException - If the resulting URL is malformed.
    • isFile

      protected boolean isFile(URL url)
    • createFileResponse

      protected HTTPResponse createFileResponse(URL url) throws IOException
      Throws:
      IOException
    • post

      public abstract HTTPResponse post(URL url, InputStream content, String contentType) throws IOException
      Description copied from interface: HTTPClient
      Executes an HTTP POST request against the provided URL, sending the contents of postContent as the POST method body and setting the Content-Type request header to postContentType if given, and returns the server response.

      If an HTTP authentication user and password is set, the appropriate authentication HTTP header will be sent with the request.

      If a connection timeout is set, the http connection will be set to respect that timeout.

      If a read timeout is set, the http connection will be set to respect it.

      Specified by:
      post in interface HTTPClient
      Parameters:
      url - the URL against which to execute the POST request
      content - an input stream with the contents of the POST body
      contentType - the MIME type of the contents sent as the request POST body, can be null
      Returns:
      the HTTPResponse encapsulating the response to the HTTP POST request
      Throws:
      IOException