Class NativeHTTPDataLoader

java.lang.Object
eu.europa.esig.dss.spi.client.http.NativeHTTPDataLoader
All Implemented Interfaces:
AdvancedDataLoader, DataLoader, Serializable

public class NativeHTTPDataLoader extends Object implements DataLoader, AdvancedDataLoader
Implementation of native java DataLoader using the java.net.URL class.
See Also:
  • Constructor Details

    • NativeHTTPDataLoader

      public NativeHTTPDataLoader()
      Default constructor instantiating object with null values
  • Method Details

    • setContentType

      public void setContentType(String contentType)
      Description copied from interface: DataLoader
      This allows to set the content type. Example: Content-Type "application/ocsp-request"
      Specified by:
      setContentType in interface DataLoader
      Parameters:
      contentType - to set the Content-Type
    • getMaxInputSize

      public int getMaxInputSize()
      Gets the maximum InputStream size
      Returns:
      maximum InputStream size
    • setMaxInputSize

      public void setMaxInputSize(int maxInputSize)
      Sets the maximum InputStream size
      Parameters:
      maxInputSize - maximum InputStream size
    • getConnectTimeout

      public int getConnectTimeout()
      Gets the timeout value on connection establishment with a remote resource
      Returns:
      connection timeout value
    • setConnectTimeout

      public void setConnectTimeout(int connectTimeout)
      Sets the timeout to establish a connection with a remote resource (in milliseconds). Zero (0) value is used for no timeout. Default: 0 (no timeout)
      Parameters:
      connectTimeout - connection timeout value (in milliseconds)
    • getReadTimeout

      public int getReadTimeout()
      Gets the timeout value on response reading from a remote resource
      Returns:
      read timeout value
    • setReadTimeout

      public void setReadTimeout(int readTimeout)
      Sets the timeout to read a response from a remote resource (in milliseconds). Zero (0) value is used for no timeout. Default: 0 (no timeout)
      Parameters:
      readTimeout - read timeout value (in milliseconds)
    • request

      @Deprecated protected byte[] request(String url, NativeHTTPDataLoader.HttpMethod method, byte[] content, boolean refresh)
      Deprecated.
      since DSS 6.4. Please use #request(url, method, content, refresh, true, false) method instead.
      Execute the request
      Parameters:
      url - String
      method - NativeHTTPDataLoader.HttpMethod
      content - request content
      refresh - if enforce the refresh
      Returns:
      response binaries
    • createNativeHTTPDataLoaderCall

      protected Callable<ResponseEnvelope> createNativeHTTPDataLoaderCall(String url, NativeHTTPDataLoader.HttpMethod method, byte[] content, boolean refresh, boolean includeResponseDetails, boolean includeResponseBody)
      This method creates a task call to be executed by NativeHTTPDataLoader
      Parameters:
      url - String URL to call
      method - NativeHTTPDataLoader.HttpMethod of the request
      content - byte array containing a body of the request, when required
      refresh - defined if the cache should be used
      includeResponseDetails - whether HTTP content information is to be included in the response object
      includeResponseBody - whether the response message body is to be included in the output response object
      Returns:
      Callable task
    • request

      protected ResponseEnvelope request(String url, NativeHTTPDataLoader.HttpMethod method, byte[] content, boolean refresh, boolean includeResponseDetails, boolean includeResponseBody)
      Execute the request
      Parameters:
      url - String
      method - NativeHTTPDataLoader.HttpMethod
      content - request content
      refresh - if enforce the refresh
      includeResponseDetails - whether HTTP content information is to be included in the response object
      includeResponseBody - whether the response message body is to be included in the output response object
      Returns:
      response binaries
    • createNativeDataLoaderCall

      @Deprecated protected Callable<byte[]> createNativeDataLoaderCall(String url, NativeHTTPDataLoader.HttpMethod method, byte[] content, boolean refresh)
      Deprecated.
      since DSS 6.4. Please use #createNativeHTTPDataLoaderCall( String url, HttpMethod method, byte[] content, boolean refresh, boolean includeHTTPContent) method instead
      This method creates a task call to be executed by NativeHTTPDataLoader
      Parameters:
      url - String URL to call
      method - NativeHTTPDataLoader.HttpMethod of the request
      content - byte array containing a body of the request, when required
      refresh - defined if the cache should be used
      Returns:
      Callable task
    • get

      public DataLoader.DataAndUrl get(List<String> urlStrings)
      Description copied from interface: DataLoader
      Execute a HTTP GET operation. This method is used when many URls are available to access the same resource. The operation stops after the first successful download.
      Specified by:
      get in interface DataLoader
      Parameters:
      urlStrings - List of Strings representing the URLs to be used in sequential way to obtain the data.
      Returns:
      DataAndUrl representing the array of obtained data and used url, or null
    • get

      public byte[] get(String url)
      Description copied from interface: DataLoader
      Execute a HTTP GET operation.
      Specified by:
      get in interface DataLoader
      Parameters:
      url - the url to access
      Returns:
      byte array of obtained data or null
    • get

      public byte[] get(String url, boolean refresh)
      Executes a GET request to the provided URL, with a forced cache refresh when defined
      Parameters:
      url - to access
      refresh - if true indicates that the data should be refreshed
      Returns:
      binaries of the extracted data object
    • post

      public byte[] post(String url, byte[] content)
      Description copied from interface: DataLoader
      Executes a HTTP POST operation
      Specified by:
      post in interface DataLoader
      Parameters:
      url - to access
      content - the content to post
      Returns:
      byte array of obtained data
    • requestGet

      public ResponseEnvelope requestGet(String url)
      Description copied from interface: AdvancedDataLoader
      Executes a GET request and returns an ResponseEnvelope object. This method included the response message body, context and metadata within the response object.
      Specified by:
      requestGet in interface AdvancedDataLoader
      Parameters:
      url - String URL to perform request to
      Returns:
      ResponseEnvelope
    • requestGet

      public ResponseEnvelope requestGet(String url, boolean includeResponseDetails)
      Description copied from interface: AdvancedDataLoader
      Executes a GET request and returns an ResponseEnvelope object. This method allows configuration whether the response context (HTTP headers, TLS/SSL certificates, etc.), is to be included within the response object. The response body will be included within the response, when calling this method.
      Specified by:
      requestGet in interface AdvancedDataLoader
      Parameters:
      url - String URL to perform request to
      includeResponseDetails - defines whether the response context (HTTP headers, metadata) is to be included within the response
      Returns:
      ResponseEnvelope
    • requestGet

      public ResponseEnvelope requestGet(String url, boolean includeResponseDetails, boolean includeResponseBody)
      Description copied from interface: AdvancedDataLoader
      Executes a GET request and returns an ResponseEnvelope object. This method allows configuration whether the response context (HTTP headers, TLS/SSL certificates, etc.), as well as the response message body are to be included within the response object. The data which is not included, won't be read by the execution process, thus helping to achieve time-memory efficiency.
      Specified by:
      requestGet in interface AdvancedDataLoader
      Parameters:
      url - String URL to perform request to
      includeResponseDetails - defines whether the response context (HTTP headers, metadata) is to be included within the response
      includeResponseBody - defines whether the response body is to be included within the response
      Returns:
      ResponseEnvelope
    • requestPost

      public ResponseEnvelope requestPost(String url, byte[] content)
      Description copied from interface: AdvancedDataLoader
      Executes a POST request and returns an ResponseEnvelope object. This method included the response message body, context and metadata within the response object.
      Specified by:
      requestPost in interface AdvancedDataLoader
      Parameters:
      url - String URL to perform request to
      content - byte array containing request content for the POST call
      Returns:
      ResponseEnvelope
    • requestPost

      public ResponseEnvelope requestPost(String url, byte[] content, boolean includeResponseDetails)
      Description copied from interface: AdvancedDataLoader
      Executes a POST request and returns an ResponseEnvelope object. This method allows configuration whether the response context (HTTP headers, TLS/SSL certificates, etc.), is to be included within the response object. The response body will be included within the response, when calling this method.
      Specified by:
      requestPost in interface AdvancedDataLoader
      Parameters:
      url - String URL to perform request to
      content - byte array containing request content for the POST call
      includeResponseDetails - defines whether the response context (HTTP headers, metadata) is to be included within the response
      Returns:
      ResponseEnvelope
    • requestPost

      public ResponseEnvelope requestPost(String url, byte[] content, boolean includeResponseDetails, boolean includeResponseBody)
      Description copied from interface: AdvancedDataLoader
      Executes a POST request and returns an ResponseEnvelope object. This method allows configuration whether the response context (HTTP headers, TLS/SSL certificates, etc.), as well as the response message body are to be included within the response object. The data which is not included, won't be read by the execution process, thus helping to achieve time-memory efficiency.
      Specified by:
      requestPost in interface AdvancedDataLoader
      Parameters:
      url - String URL to perform request to
      content - byte array containing request content for the POST call
      includeResponseDetails - defines whether the response context (HTTP headers, metadata) is to be included within the response
      includeResponseBody - defines whether the response body is to be included within the response
      Returns:
      ResponseEnvelope