public class OkHttpClient extends Object implements Cloneable
Instances of OkHttpClient are intended to be fully configured before they're
shared - once shared they should be treated as immutable and can safely be used
to concurrently open new connections. If required, threads can call
clone()
to make a shallow copy of the OkHttpClient that can be
safely modified with further configuration changes.
Constructor and Description |
---|
OkHttpClient() |
Modifier and Type | Method and Description |
---|---|
OkHttpClient |
cancel(Object tag)
Cancels all scheduled or in-flight calls tagged with
tag . |
OkHttpClient |
clone()
Returns a shallow copy of this OkHttpClient.
|
Authenticator |
getAuthenticator() |
Cache |
getCache() |
CertificatePinner |
getCertificatePinner() |
ConnectionPool |
getConnectionPool() |
List<ConnectionSpec> |
getConnectionSpecs() |
int |
getConnectTimeout()
Default connect timeout (in milliseconds).
|
CookieHandler |
getCookieHandler() |
Dispatcher |
getDispatcher() |
boolean |
getFollowRedirects() |
boolean |
getFollowSslRedirects() |
HostnameVerifier |
getHostnameVerifier() |
List<Protocol> |
getProtocols() |
Proxy |
getProxy() |
ProxySelector |
getProxySelector() |
int |
getReadTimeout()
Default read timeout (in milliseconds).
|
boolean |
getRetryOnConnectionFailure() |
SocketFactory |
getSocketFactory() |
SSLSocketFactory |
getSslSocketFactory() |
int |
getWriteTimeout()
Default write timeout (in milliseconds).
|
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).
|
List<Interceptor> |
networkInterceptors()
Returns a modifiable list of interceptors that observe a single network request and response.
|
Call |
newCall(Request request)
Prepares the
request to be executed at some point in the future. |
OkHttpClient |
setAuthenticator(Authenticator authenticator)
Sets the authenticator used to respond to challenges from the remote web
server or proxy server.
|
OkHttpClient |
setCache(Cache cache) |
OkHttpClient |
setCertificatePinner(CertificatePinner certificatePinner)
Sets the certificate pinner that constrains which certificates are trusted.
|
OkHttpClient |
setConnectionPool(ConnectionPool connectionPool)
Sets the connection pool used to recycle HTTP and HTTPS connections.
|
OkHttpClient |
setConnectionSpecs(List<ConnectionSpec> connectionSpecs) |
void |
setConnectTimeout(long timeout,
TimeUnit unit)
Sets the default connect timeout for new connections.
|
OkHttpClient |
setCookieHandler(CookieHandler cookieHandler)
Sets the cookie handler to be used to read outgoing cookies and write
incoming cookies.
|
OkHttpClient |
setDispatcher(Dispatcher dispatcher)
Sets the dispatcher used to set policy and execute asynchronous requests.
|
void |
setFollowRedirects(boolean followRedirects)
Configure this client to follow redirects.
|
OkHttpClient |
setFollowSslRedirects(boolean followProtocolRedirects)
Configure this client to follow redirects from HTTPS to HTTP and from HTTP
to HTTPS.
|
OkHttpClient |
setHostnameVerifier(HostnameVerifier hostnameVerifier)
Sets the verifier used to confirm that response certificates apply to
requested hostnames for HTTPS connections.
|
OkHttpClient |
setProtocols(List<Protocol> protocols)
Configure the protocols used by this client to communicate with remote
servers.
|
OkHttpClient |
setProxy(Proxy proxy)
Sets the HTTP proxy that will be used by connections created by this
client.
|
OkHttpClient |
setProxySelector(ProxySelector proxySelector)
Sets the proxy selection policy to be used if no
proxy
is specified explicitly. |
void |
setReadTimeout(long timeout,
TimeUnit unit)
Sets the default read timeout for new connections.
|
void |
setRetryOnConnectionFailure(boolean retryOnConnectionFailure)
Configure this client to retry or not when a connectivity problem is encountered.
|
OkHttpClient |
setSocketFactory(SocketFactory socketFactory)
Sets the socket factory used to create connections.
|
OkHttpClient |
setSslSocketFactory(SSLSocketFactory sslSocketFactory)
Sets the socket factory used to secure HTTPS connections.
|
void |
setWriteTimeout(long timeout,
TimeUnit unit)
Sets the default write timeout for new connections.
|
public void setConnectTimeout(long timeout, TimeUnit unit)
Integer.MAX_VALUE
when converted to milliseconds.URLConnection.setConnectTimeout(int)
public int getConnectTimeout()
public void setReadTimeout(long timeout, TimeUnit unit)
Integer.MAX_VALUE
when converted to milliseconds.URLConnection.setReadTimeout(int)
public int getReadTimeout()
public void setWriteTimeout(long timeout, TimeUnit unit)
Integer.MAX_VALUE
when converted to milliseconds.public int getWriteTimeout()
public OkHttpClient setProxy(Proxy proxy)
setProxySelector(java.net.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)
.public Proxy getProxy()
public OkHttpClient setProxySelector(ProxySelector proxySelector)
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.
public ProxySelector getProxySelector()
public OkHttpClient setCookieHandler(CookieHandler cookieHandler)
If unset, the system-wide default
cookie handler will be used.
public CookieHandler getCookieHandler()
public OkHttpClient setCache(Cache cache)
public Cache getCache()
public OkHttpClient setSocketFactory(SocketFactory socketFactory)
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.
public SocketFactory getSocketFactory()
public OkHttpClient setSslSocketFactory(SSLSocketFactory sslSocketFactory)
If unset, a lazily created SSL socket factory will be used.
public SSLSocketFactory getSslSocketFactory()
public OkHttpClient setHostnameVerifier(HostnameVerifier hostnameVerifier)
If unset, a default hostname verifier will be used.
public HostnameVerifier getHostnameVerifier()
public OkHttpClient setCertificatePinner(CertificatePinner certificatePinner)
SSL socket factory
to establish trust. Pinning certificates avoids the
need to trust certificate authorities.public CertificatePinner getCertificatePinner()
public OkHttpClient setAuthenticator(Authenticator authenticator)
If unset, the system-wide default
authenticator will be used.
public Authenticator getAuthenticator()
public OkHttpClient setConnectionPool(ConnectionPool connectionPool)
If unset, the system-wide
default
connection pool will be used.
public ConnectionPool getConnectionPool()
public OkHttpClient setFollowSslRedirects(boolean followProtocolRedirects)
If unset, protocol redirects will be followed. This is different than
the built-in HttpURLConnection
's default.
public boolean getFollowSslRedirects()
public void setFollowRedirects(boolean followRedirects)
public boolean getFollowRedirects()
public void setRetryOnConnectionFailure(boolean retryOnConnectionFailure)
ConnectionPool
reuses sockets
to decrease request latency, but these connections will occasionally time out.
ProxySelector
can be used to
attempt multiple proxy servers in sequence, eventually falling back to a direct
connection.
public boolean getRetryOnConnectionFailure()
public OkHttpClient setDispatcher(Dispatcher dispatcher)
public Dispatcher getDispatcher()
public OkHttpClient setProtocols(List<Protocol> protocols)
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()
.
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
.public OkHttpClient setConnectionSpecs(List<ConnectionSpec> connectionSpecs)
public List<ConnectionSpec> getConnectionSpecs()
public List<Interceptor> interceptors()
public List<Interceptor> networkInterceptors()
Interceptor.Chain.proceed(com.squareup.okhttp.Request)
exactly once: it is an error for
a network interceptor to short-circuit or repeat a network request.public Call newCall(Request request)
request
to be executed at some point in the future.public OkHttpClient cancel(Object tag)
tag
. Requests
that are already complete cannot be canceled.public OkHttpClient clone()
Copyright © 2015. All Rights Reserved.