Package-level declarations
Types
A specification for a connection to an origin server. For simple connections, this is the server's hostname and port. If an explicit proxy is requested (or Proxy.NO_PROXY is explicitly requested), this also includes that proxy information. For secure connections the address also includes the SSL socket factory, hostname verifier, and certificate pinner.
Performs either preemptive authentication before connecting to a proxy server, or reactive authentication after receiving a challenge from either an origin web server or proxy server.
A Cache-Control header with cache directives from a server or client. These directives set policy on what responses can be stored, and which requests can be satisfied by those stored responses.
Constrains which certificates are trusted. Pinning certificates defends against attacks on certificate authorities. It also prevents connections through man-in-the-middle certificate authorities either known or unknown to the application's user. This class currently pins a certificate's Subject Public Key Info as described on Adam Langley's Weblog. Pins are either base64 SHA-256 hashes as in HTTP Public Key Pinning (HPKP) or SHA-1 base64 hashes as in Chromium's static certificates.
The sockets and streams of an HTTP, HTTPS, or HTTPS+HTTP/2 connection. May be used for multiple HTTP request/response exchanges. Connections may be direct to the origin server or via a proxy.
Manages reuse of HTTP and HTTP/2 connections for reduced network latency. HTTP requests that share the same Address may share a Connection. This class implements the policy of which connections to keep open for future use.
Specifies configuration for the socket connection that HTTP traffic travels through. For https:
URLs, this includes the TLS version and cipher suites to use when negotiating a secure connection.
Factory for HTTP authorization credentials.
Policy on when async requests are executed.
A domain name service that resolves IP addresses for host names. Most applications will use the system DNS service, which is the default. Some applications may provide their own implementation to use a different DNS server, to prefer IPv6 addresses, to prefer IPv4 addresses, or to force a specific known IP address.
Listener for metrics events. Extend this class to monitor the quantity, size, and duration of your application's HTTP calls.
Observes, modifies, and potentially short-circuits requests going out and the corresponding responses coming back in. Typically interceptors add, remove, or transform headers on the request or response.
An RFC 2387-compliant request body.
Factory for calls, which can be used to send HTTP requests and read their responses.
A one-shot stream from the origin server to the client application with the raw bytes of the response body. Each response body is supported by an active connection to the webserver. This imposes both obligations and limits on the client application.
Versions of TLS that can be offered when negotiating a secure socket. See javax.net.ssl.SSLSocket.setEnabledProtocols.
Returns the trailers that follow an HTTP response, blocking if they aren't ready yet. Implementations of this interface should respond to Call.cancel by immediately throwing an IOException.
A non-blocking interface to a web socket. Use the factory to create instances; usually this is OkHttpClient.