Class NetHttpTransport

java.lang.Object
com.google.api.client.http.HttpTransport
com.google.api.client.http.javanet.NetHttpTransport

public final class NetHttpTransport extends HttpTransport
Thread-safe HTTP low-level transport based on the java.net package.

Users should consider modifying the keep alive property on NetHttpTransport to control whether the socket should be returned to a pool of connected sockets. More information is available here.

We honor the default global caching behavior. To change the default behavior use URLConnection.setDefaultUseCaches(boolean).

Implementation is thread-safe. For maximum efficiency, applications should use a single globally-shared instance of the HTTP transport.

Since:
1.0
  • Field Details

    • SUPPORTED_METHODS

      private static final String[] SUPPORTED_METHODS
      All valid request methods as specified in HttpURLConnection.setRequestMethod(java.lang.String), sorted in ascending alphabetical order.
    • SHOULD_USE_PROXY_FLAG

      private static final String SHOULD_USE_PROXY_FLAG
      See Also:
    • connectionFactory

      private final ConnectionFactory connectionFactory
    • sslSocketFactory

      private final SSLSocketFactory sslSocketFactory
      SSL socket factory or null for the default.
    • hostnameVerifier

      private final HostnameVerifier hostnameVerifier
      Host name verifier or null for the default.
    • isMtls

      private final boolean isMtls
      Whether the transport is mTLS. Default value is false.
  • Constructor Details

    • NetHttpTransport

      public NetHttpTransport()
      Constructor with the default behavior.

      Instead use NetHttpTransport.Builder to modify behavior.

    • NetHttpTransport

      NetHttpTransport(Proxy proxy, SSLSocketFactory sslSocketFactory, HostnameVerifier hostnameVerifier, boolean isMtls)
      Parameters:
      proxy - HTTP proxy or null to use the proxy settings from system properties
      sslSocketFactory - SSL socket factory or null for the default
      hostnameVerifier - host name verifier or null for the default
      isMtls - Whether the transport is mTLS. Default value is false
      Since:
      1.38
    • NetHttpTransport

      NetHttpTransport(ConnectionFactory connectionFactory, SSLSocketFactory sslSocketFactory, HostnameVerifier hostnameVerifier, boolean isMtls)
      Parameters:
      connectionFactory - factory to produce connections from URLs; if null then DefaultConnectionFactory is used
      sslSocketFactory - SSL socket factory or null for the default
      hostnameVerifier - host name verifier or null for the default
      isMtls - Whether the transport is mTLS. Default value is false
      Since:
      1.38
  • Method Details

    • defaultProxy

      private static Proxy defaultProxy()
    • getConnectionFactory

      private ConnectionFactory getConnectionFactory(ConnectionFactory connectionFactory)
    • supportsMethod

      public boolean supportsMethod(String method)
      Description copied from class: HttpTransport
      Returns whether a specified HTTP method is supported by this transport.

      Default implementation returns true if and only if the request method is "DELETE", "GET", "POST", or "PUT". Subclasses should override.

      Overrides:
      supportsMethod in class HttpTransport
      Parameters:
      method - HTTP method
    • isMtls

      public boolean isMtls()
      Description copied from class: HttpTransport
      Returns whether the transport is mTLS.
      Overrides:
      isMtls in class HttpTransport
      Returns:
      boolean indicating if the transport is mTLS.
    • buildRequest

      protected NetHttpRequest buildRequest(String method, String url) throws IOException
      Description copied from class: HttpTransport
      Builds a low level HTTP request for the given HTTP method.
      Specified by:
      buildRequest in class HttpTransport
      Parameters:
      method - HTTP method
      url - URL
      Returns:
      new low level HTTP request
      Throws:
      IOException