Class HttpClient

  • All Implemented Interfaces:
    URLConnector, java.io.Closeable, java.lang.AutoCloseable

    public class HttpClient
    extends java.lang.Object
    implements java.io.Closeable, URLConnector
    A simple Http Client that inter-works with the bnd registry. It provides an easy way to construct a URL request. The request is then decorated with third parties that are in the bnd registry for proxies and authentication models.
    • Field Detail

      • sdf

        @Deprecated
        public static final java.text.SimpleDateFormat sdf
        Deprecated.
    • Constructor Detail

      • HttpClient

        public HttpClient()
    • Method Detail

      • close

        public void close()
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
      • connect

        public java.io.InputStream connect​(java.net.URL url)
                                    throws java.lang.Exception
        Description copied from interface: URLConnector
        Connect to the specified URL.
        Specified by:
        connect in interface URLConnector
        Throws:
        java.io.IOException
        java.lang.Exception
      • connectTagged

        public TaggedData connectTagged​(java.net.URL url)
                                 throws java.lang.Exception
        Description copied from interface: URLConnector
        Connect to the specified URL, also returning the ETag if available.
        Specified by:
        connectTagged in interface URLConnector
        Parameters:
        url - The remote URL.
        Returns:
        An instance of TaggedData; note that the TaggedData.getTag() method may return null if the resource has no tag.
        Throws:
        java.io.IOException - @since 1.1
        java.lang.Exception
      • connectTagged

        public TaggedData connectTagged​(java.net.URL url,
                                        java.lang.String tag)
                                 throws java.lang.Exception
        Description copied from interface: URLConnector
        Connect to the specified URL while providing the last known tag for the remote resource; the response will be null if the remote resource is unchanged.
        Specified by:
        connectTagged in interface URLConnector
        Parameters:
        url - The remote URL.
        tag - The last known tag value for the resource.
        Returns:
        An instance of TaggedData, or null if the resource has not modified (i.e., if it has the same tag value).
        Throws:
        java.io.IOException - @since 1.1
        java.lang.Exception
      • send

        public <T> T send​(HttpRequest<T> request)
                   throws java.lang.Exception
        Throws:
        java.lang.Exception
      • send0

        public TaggedData send0​(HttpRequest<?> request)
                         throws java.lang.Exception
        Throws:
        java.lang.Exception
      • getProxySetup

        public ProxyHandler.ProxySetup getProxySetup​(java.net.URL url)
                                              throws java.lang.Exception
        Throws:
        java.lang.Exception
      • connectWithProxy

        public <T> T connectWithProxy​(ProxyHandler.ProxySetup proxySetup,
                                      java.util.concurrent.Callable<T> r)
                               throws java.lang.Exception
        Throws:
        java.lang.Exception
      • setCache

        public void setCache​(java.io.File cache)
      • setReporter

        public void setReporter​(aQute.service.reporter.Reporter reporter)
      • setRegistry

        public void setRegistry​(Registry registry)
      • getReporter

        public aQute.service.reporter.Reporter getReporter()
      • addProxyHandler

        public void addProxyHandler​(ProxyHandler proxyHandler)
      • setLog

        public void setLog​(java.io.File log)
                    throws java.io.IOException
        Throws:
        java.io.IOException
      • getUserFor

        public java.lang.String getUserFor​(java.lang.String base)
                                    throws java.net.MalformedURLException,
                                           java.lang.Exception
        Throws:
        java.net.MalformedURLException
        java.lang.Exception
      • toName

        public java.lang.String toName​(java.net.URI url)
                                throws java.lang.Exception
        Throws:
        java.lang.Exception
      • getCacheFileFor

        public java.io.File getCacheFileFor​(java.net.URI url)
                                     throws java.lang.Exception
        Throws:
        java.lang.Exception
      • readSettings

        public void readSettings​(Processor processor)
                          throws java.io.IOException,
                                 java.lang.Exception
        Throws:
        java.io.IOException
        java.lang.Exception
      • makeDir

        public java.net.URI makeDir​(java.net.URI uri)
                             throws java.net.URISyntaxException
        Throws:
        java.net.URISyntaxException
      • isOffline

        public boolean isOffline()
      • setOffline

        public void setOffline​(java.util.concurrent.atomic.AtomicBoolean offline)
      • promiseFactory

        public org.osgi.util.promise.PromiseFactory promiseFactory()
      • reportSettings

        public void reportSettings​(java.util.Formatter out)
      • retries

        public HttpClient retries​(int retries)
      • retryDelay

        public HttpClient retryDelay​(int retryDelay)
      • validateURI

        public java.lang.String validateURI​(java.net.URI u)
        Validate a URI to see if it is supported by this client
        Parameters:
        u - the uri
        Returns:
        null if ok, otherwise a reason why it is invalid