类 ConnectionSpec

java.lang.Object
com.lark.oapi.okhttp.ConnectionSpec

public final class ConnectionSpec extends Object
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.

The TLS versions configured in a connection spec are only be used if they are also enabled in the SSL socket. For example, if an SSL socket does not have TLS 1.3 enabled, it will not be used even if it is present on the connection spec. The same policy also applies to cipher suites.

Use ConnectionSpec.Builder.allEnabledTlsVersions() and ConnectionSpec.Builder.allEnabledCipherSuites() to defer all feature selection to the underlying SSL socket.

The configuration of each spec changes with each OkHttp release. This is annoying: upgrading your OkHttp library can break connectivity to certain web servers! But it’s a necessary annoyance because the TLS ecosystem is dynamic and staying up to date is necessary to stay secure. See OkHttp's TLS Configuration History to track these changes.

  • 字段详细资料

    • CLEARTEXT

      public static final ConnectionSpec CLEARTEXT
      Unencrypted, unauthenticated connections for http: URLs.
    • RESTRICTED_TLS

      public static final ConnectionSpec RESTRICTED_TLS
      A secure TLS connection that requires a recent client platform and a recent server.
    • MODERN_TLS

      public static final ConnectionSpec MODERN_TLS
      A modern TLS configuration that works on most client platforms and can connect to most servers. This is OkHttp's default configuration.
    • COMPATIBLE_TLS

      public static final ConnectionSpec COMPATIBLE_TLS
      A backwards-compatible fallback configuration that works on obsolete client platforms and can connect to obsolete servers. When possible, prefer to upgrade your client platform or server rather than using this configuration.
  • 方法详细资料

    • isTls

      public boolean isTls()
    • cipherSuites

      @Nullable public List<CipherSuite> cipherSuites()
      Returns the cipher suites to use for a connection. Returns null if all of the SSL socket's enabled cipher suites should be used.
    • tlsVersions

      @Nullable public List<TlsVersion> tlsVersions()
      Returns the TLS versions to use when negotiating a connection. Returns null if all of the SSL socket's enabled TLS versions should be used.
    • supportsTlsExtensions

      public boolean supportsTlsExtensions()
    • isCompatible

      public boolean isCompatible(SSLSocket socket)
      Returns true if the socket, as currently configured, supports this connection spec. In order for a socket to be compatible the enabled cipher suites and protocols must intersect.

      For cipher suites, at least one of the required cipher suites must match the socket's enabled cipher suites. If there are no required cipher suites the socket must have at least one cipher suite enabled.

      For protocols, at least one of the required protocols must match the socket's enabled protocols.

    • equals

      public boolean equals(@Nullable Object other)
      覆盖:
      equals 在类中 Object
    • hashCode

      public int hashCode()
      覆盖:
      hashCode 在类中 Object
    • toString

      public String toString()
      覆盖:
      toString 在类中 Object