Class OkHttpClient.Builder

  • Enclosing class:
    OkHttpClient


    public static final class OkHttpClient.Builder
    extends Object
    • Constructor Detail

      • Builder

        public Builder()
    • Method Detail

      • connectTimeout

        public OkHttpClient.Builder connectTimeout(long timeout,
                                                   TimeUnit unit)
        Sets the default connect timeout for new connections. A value of 0 means no timeout, otherwise values must be between 1 and Integer.MAX_VALUE when converted to milliseconds.
      • readTimeout

        public OkHttpClient.Builder readTimeout(long timeout,
                                                TimeUnit unit)
        Sets the default read timeout for new connections. A value of 0 means no timeout, otherwise values must be between 1 and Integer.MAX_VALUE when converted to milliseconds.
      • writeTimeout

        public OkHttpClient.Builder writeTimeout(long timeout,
                                                 TimeUnit unit)
        Sets the default write timeout for new connections. A value of 0 means no timeout, otherwise values must be between 1 and Integer.MAX_VALUE when converted to milliseconds.
      • proxy

        public OkHttpClient.Builder proxy(Proxy proxy)
        Sets the HTTP proxy that will be used by connections created by this client. This takes precedence over proxySelector, which is only honored when this proxy is null (which it is by default). To disable proxy use completely, call setProxy(Proxy.NO_PROXY).
      • proxySelector

        public OkHttpClient.Builder proxySelector(ProxySelector proxySelector)
        Sets the proxy selection policy to be used if no proxy is specified explicitly. The proxy selector may return multiple proxies; in that case they will be tried in sequence until a successful connection is established.

        If unset, the system-wide default proxy selector will be used.

      • cookieJar

        public OkHttpClient.Builder cookieJar(CookieJar cookieJar)
        Sets the handler that can accept cookies from incoming HTTP responses and provides cookies to outgoing HTTP requests.

        If unset, no cookies will be accepted nor provided.

      • socketFactory

        public OkHttpClient.Builder socketFactory(SocketFactory socketFactory)
        Sets the socket factory used to create connections. OkHttp only uses the parameterless createSocket() method to create unconnected sockets. Overriding this method, e. g., allows the socket to be bound to a specific local address.

        If unset, the system-wide default socket factory will be used.

      • sslSocketFactory

        public OkHttpClient.Builder sslSocketFactory(SSLSocketFactory sslSocketFactory)
        Sets the socket factory used to secure HTTPS connections.

        If unset, a lazily created SSL socket factory will be used.

      • hostnameVerifier

        public OkHttpClient.Builder hostnameVerifier(HostnameVerifier hostnameVerifier)
        Sets the verifier used to confirm that response certificates apply to requested hostnames for HTTPS connections.

        If unset, a default hostname verifier will be used.

      • certificatePinner

        public OkHttpClient.Builder certificatePinner(CertificatePinner certificatePinner)
        Sets the certificate pinner that constrains which certificates are trusted. By default HTTPS connections rely on only the SSL socket factory to establish trust. Pinning certificates avoids the need to trust certificate authorities.
      • connectionPool

        public OkHttpClient.Builder connectionPool(ConnectionPool connectionPool)
        Sets the connection pool used to recycle HTTP and HTTPS connections.

        If unset, a new connection pool will be used.

      • followSslRedirects

        public OkHttpClient.Builder followSslRedirects(boolean followProtocolRedirects)
        Configure this client to follow redirects from HTTPS to HTTP and from HTTP to HTTPS.

        If unset, protocol redirects will be followed. This is different than the built-in HttpURLConnection's default.

      • followRedirects

        public OkHttpClient.Builder followRedirects(boolean followRedirects)
        Configure this client to follow redirects. If unset, redirects be followed.
      • retryOnConnectionFailure

        public OkHttpClient.Builder retryOnConnectionFailure(boolean retryOnConnectionFailure)
        Configure this client to retry or not when a connectivity problem is encountered. By default, this client silently recovers from the following problems:
        • Unreachable IP addresses. If the URL's host has multiple IP addresses, failure to reach any individual IP address doesn't fail the overall request. This can increase availability of multi-homed services.
        • Stale pooled connections. The ConnectionPool reuses sockets to decrease request latency, but these connections will occasionally time out.
        • Unreachable proxy servers. A ProxySelector can be used to attempt multiple proxy servers in sequence, eventually falling back to a direct connection.
        Set this to false to avoid retrying requests when doing so is destructive. In this case the calling application should do its own recovery of connectivity failures.
      • dispatcher

        public OkHttpClient.Builder dispatcher(Dispatcher dispatcher)
        Sets the dispatcher used to set policy and execute asynchronous requests. Must not be null.
      • protocols

        public OkHttpClient.Builder protocols(List<Protocol> protocols)
        Configure the protocols used by this client to communicate with remote servers. By default this client will prefer the most efficient transport available, falling back to more ubiquitous protocols. Applications should only call this method to avoid specific compatibility problems, such as web servers that behave incorrectly when SPDY is enabled.

        The following protocols are currently supported:

        This is an evolving set. Future releases include support for transitional protocols. The http/1.1 transport will never be dropped.

        If multiple protocols are specified, ALPN will be used to negotiate a transport.

        Protocol.HTTP_1_0 is not supported in this set. Requests are initiated with HTTP/1.1 only. If the server responds with HTTP/1.0, that will be exposed by Response.protocol().

        Parameters:
        protocols - the protocols to use, in order of preference. The list must contain Protocol.HTTP_1_1. It must not contain null or Protocol.HTTP_1_0.
      • interceptors

        public List<Interceptor> interceptors()
        Returns a modifiable list of interceptors that observe the full span of each call: from before the connection is established (if any) until after the response source is selected (either the origin server, cache, or both).
      • networkInterceptors

        public List<Interceptor> networkInterceptors()
        Returns a modifiable list of interceptors that observe a single network request and response. These interceptors must call Interceptor.Chain.proceed(okhttp3.Request) exactly once: it is an error for a network interceptor to short-circuit or repeat a network request.