The Google APIs Client Library for Java is a flexible, efficient, and powerful Java client library for accessing any HTTP-based API on the web, not just Google APIs.
—
The Google API Client provides HTTP transport implementations with SSL/TLS support and mutual TLS (mTLS) capabilities for secure communication with Google APIs.
import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport;
import com.google.api.client.googleapis.apache.v2.GoogleApacheHttpTransport;
import com.google.api.client.googleapis.mtls.MtlsProvider;
import com.google.api.client.http.HttpTransport;Thread-safe factory for creating NetHttpTransport instances configured for Google APIs.
public final class GoogleNetHttpTransport {
public static NetHttpTransport newTrustedTransport()
throws GeneralSecurityException, IOException;
@Beta
public static NetHttpTransport newTrustedTransport(MtlsProvider mtlsProvider)
throws GeneralSecurityException, IOException;
}Usage Example:
import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport;
import com.google.api.client.http.HttpTransport;
// Create a trusted transport with Google's certificate trust store
HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport();
// Use with mTLS provider (Beta)
MtlsProvider mtlsProvider = // ... configure mTLS provider
HttpTransport mtlsTransport = GoogleNetHttpTransport.newTrustedTransport(mtlsProvider);Utilities for Google APIs based on ApacheHttpTransport.
public final class GoogleApacheHttpTransport {
public static ApacheHttpTransport newTrustedTransport()
throws GeneralSecurityException, IOException;
@Beta
public static ApacheHttpTransport newTrustedTransport(MtlsProvider mtlsProvider)
throws GeneralSecurityException, IOException;
}Usage Example:
import com.google.api.client.googleapis.apache.v2.GoogleApacheHttpTransport;
import com.google.api.client.http.apache.v2.ApacheHttpTransport;
// Create Apache-based transport
ApacheHttpTransport transport = GoogleApacheHttpTransport.newTrustedTransport();
// Use with custom mTLS configuration
MtlsProvider mtlsProvider = // ... configure mTLS provider
ApacheHttpTransport mtlsTransport = GoogleApacheHttpTransport.newTrustedTransport(mtlsProvider);Interface for providing mutual TLS configuration.
@Beta
public interface MtlsProvider {
boolean useMtlsClientCertificate();
String getKeyStorePassword();
KeyStore getKeyStore() throws IOException, GeneralSecurityException;
}Utility class for providing the default mutual TLS provider.
@Beta
public class MtlsUtils {
public static MtlsProvider getDefaultMtlsProvider();
}Usage Example:
import com.google.api.client.googleapis.mtls.MtlsUtils;
import com.google.api.client.googleapis.mtls.MtlsProvider;
// Get the default mTLS provider
MtlsProvider provider = MtlsUtils.getDefaultMtlsProvider();
// Check if mTLS should be used via the provider
if (provider.useMtlsClientCertificate()) {
HttpTransport transport = GoogleNetHttpTransport.newTrustedTransport(provider);
}Represents context-aware metadata for mTLS configuration.
public class ContextAwareMetadataJson extends GenericJson {
public List<LibraryInfo> getLibs();
public void setLibs(List<LibraryInfo> libs);
public static class LibraryInfo extends GenericJson {
public String getName();
public void setName(String name);
public String getVersion();
public void setVersion(String version);
}
}HTTP request interceptor for overriding HTTP methods using the X-HTTP-Method-Override header.
public final class MethodOverride implements HttpRequestInitializer, HttpExecuteInterceptor {
public static final String HEADER = "X-HTTP-Method-Override";
public MethodOverride();
public void initialize(HttpRequest request) throws IOException;
public void intercept(HttpRequest request) throws IOException;
public static final class Builder {
public MethodOverride build();
public boolean getOverrideAllMethods();
public Builder setOverrideAllMethods(boolean overrideAllMethods);
}
}Usage Example:
import com.google.api.client.googleapis.MethodOverride;
import com.google.api.client.http.HttpRequestInitializer;
// Create method override interceptor
MethodOverride methodOverride = new MethodOverride();
// Or with builder for custom configuration
MethodOverride customOverride = new MethodOverride.Builder()
.setOverrideAllMethods(true)
.build();
// Use as request initializer
HttpRequestInitializer requestInitializer = methodOverride;Base interface for HTTP transport implementations (from google-http-client library).
Java.net-based HTTP transport implementation.
Apache HttpClient-based HTTP transport implementation.
Java security KeyStore for certificate management.
Exception thrown for general security-related errors.
Exception thrown for I/O-related errors.
Install with Tessl CLI
npx tessl i tessl/maven-com-google-api-client--google-api-client