Welcome to Tencent Cloud Software Development Kit (SDK), a companion tool for the TencentCloud API 3.0 platform. Tencent Cloud SDK for Java helps Java developers debug and use TencentCloud APIs with ease. This document describes Tencent Cloud SDK for Java and how to quickly use it with code examples provided.
SecretID, SecretKey, and endpoint. The general format of endpoint is \*.intl.tencentcloudapi.com. For example, the endpoint of CVM is cvm.intl.tencentcloudapi.com. For more information, please see the documentation of the specified product.Before installing Tencent Cloud SDK for Java and using TencentCloud API, apply for security credentials in the Tencent Cloud Console. Security credential consists of SecretID and SecretKey. SecretID is for identifying the API requester. SecretKey is a key used for signature string encryption and authentication by the server. Please keep your SecretKey private and do not disclose it to others.
Installing through Maven is the recommended way to use the SDK for Java. Maven is a dependency manager for Java that supports the dependencies your project requires and installs them into your project. For more information, please visit Maven's official website.
pom.xml. Please note that the version number here is just an example, and you can find the latest version in the Maven repository. Currently, the latest version is <dependency>
<groupId>com.tencentcloudapi</groupId>
<artifactId>tencentcloud-sdk-java-intl-en</artifactId>
<!-- go to https://search.maven.org/search?q=tencentcloud-sdk-java-intl-en and get the latest version. -->
<!-- Please query the latest version at https://search.maven.org/search?q=tencentcloud-sdk-java-intl-en -->
<version>3.0.3</version>
</dependency>
vendor directory in a path that can be found by Java.Take the API for querying availability zones as an example:
import com.tencentcloudapi.common.Credential;
import com.tencentcloudapi.common.exception.TencentCloudSDKException;
import com.tencentcloudapi.common.profile.ClientProfile;
// Import the client of the corresponding product module
import com.tencentcloudapi.cvm.v20170312.CvmClient;
// Import the request response class corresponding to the request API
import com.tencentcloudapi.cvm.v20170312.models.DescribeInstancesRequest;
import com.tencentcloudapi.cvm.v20170312.models.DescribeInstancesResponse;
public class DescribeInstances
{
public static void main(String [] args) {
try{
// Instantiate an authentication object. The Tencent Cloud account `secretId` and `secretKey` need to be passed in as the input parameters
Credential cred = new Credential("secretId", "secretKey");
// Instantiate the client object of the requested product (with CVM as an example)
ClientProfile clientProfile = new ClientProfile();
clientProfile.setSignMethod(ClientProfile.SIGN_TC3_256);
CvmClient client = new CvmClient(cred, "ap-guangzhou", clientProfile);
// Instantiate a request object
DescribeInstancesRequest req = new DescribeInstancesRequest();
// Call the API you want to access through the client object. You need to pass in the request object
DescribeInstancesResponse resp = client.DescribeInstances(req);
// A string return packet in JSON format is output
System.out.println(DescribeInstancesRequest.toJsonString(resp));
} catch (TencentCloudSDKException e) {
System.out.println(e.toString());
}
}
}
You can find more detailed examples in the examples directory of the GitHub repository.
HttpProfile httpProfile = new HttpProfile();
httpProfile.setProxyHost("proxy-host");
httpProfile.setProxyPort(proxy-port);
httpProfile.setProxyUsername("username");
httpProfile.setProxyPassword("password");
Or, set the system proxy before initiating a request in the code:
System.setProperty("https.proxyHost", "Real proxy IP"); System.setProperty("https.proxyPort", "Real proxy port");
clientProfile.setLanguage(Language.ZH_CN); // or Language.EN_US
Switch protocols using HttpProfile.setProtocol():
httpProfile.setProtocol("http://"); // or "https://" (default)
clientProfile.setDebug(true);
Logs use commons.logging. Configure logging frameworks like Log4j if needed.
Configure as follows:
clientProfile.setBackupEndpoint("ap-guangzhou.tencentcloudapi.com");
CircuitBreaker.Setting setting = new CircuitBreaker.Setting();
setting.maxFailNum = 6;
setting.maxFailPercentage = 0.8f;
client.setRegionBreaker(new CircuitBreaker(setting));
Note: You must know the exact API parameters. Only POST + Signature v3 is supported.
Example: Common Client Usage.
Example: Retry Example.
Supported methods:
Credential cred = new EnvironmentVariableCredentialsProvider().getCredentials();
~/.tencentcloud/credentials (Linux) or C:\Users\NAME\.tencentcloud\credentials (Windows).[default]
secret_id = xxxxx
secret_key = xxxxx
Credential cred = new ProfileCredentialsProvider().getCredentials();
Credential cred = new STSCredential("secretId", "secretKey", "roleArn", "roleSessionName");
Credential cred = new CvmRoleCredential();
Credential cred = new OIDCRoleArnProvider().getCredentials();
Credential cred = new DefaultCredentialsProvider().getCredentials(); // Order: Env → File → Instance → OIDC
Example: Credential Manager.
ClientProfile cpf = new ClientProfile();
cpf.getHttpProfile().setSslSocketFactory(new MySSLSocketFactoryImpl());
cpf.getHttpProfile().setX509TrustManager(new MyX509TrustManagerImpl());
TrustManager[] trustAllCerts = new TrustManager[] { /* Custom TrustManager */ };
SSLContext sslContext = SSLContext.getInstance("TLS");
sslContext.init(null, trustAllCerts, new SecureRandom());
httpProfile.setSslSocketFactory(sslContext.getSocketFactory());
httpProfile.setX509TrustManager((X509TrustManager) trustAllCerts[0]);
httpProfile.setHostnameVerifier((hostname, session) -> true);
Map<String, String> header = new HashMap<>();
header.put("X-TC-TraceId", "ffe0c072-8a5d-4e17-8887-a8a60252abca");
request.setHeader(header);
CommonRequest request = new CommonRequest();
request.setHeader(header);
Example: CustomHttpClient.java.
Usually caused by client environment misconfiguration. Enable debug logs with -Djavax.net.debug=ssl.
SSLHandshakeException. Switching to Oracle JDK may resolve it.Error: java.lang.NoSuchMethodError: kotlin.collections.ArraysKt.copyInto. Upgrade Kotlin to fix.