Java integration guide

更新时间:
复制 MD 格式

Example program

java-sdk-example.zip

After you download the file, modify the following three files to run a test.

Simple SDK integration steps

Step 1: Add Maven dependencies

<dependency>
  <groupId>com.aliyun.api.gateway</groupId>
  <artifactId>sdk-core-java</artifactId>
  <version>1.1.7</version>
</dependency>
<dependency>
  <groupId>com.alibaba</groupId>
  <artifactId>fastjson</artifactId>
  <version>1.2.68.noneautotype</version>
</dependency>

Step 2: Add the HttpsClient class

Add HttpsClient.java and modify the package name if necessary.

package com.example.demo;

import com.alibaba.cloudapi.sdk.client.ApacheHttpClient;
import com.alibaba.cloudapi.sdk.constant.SdkConstant;
import com.alibaba.cloudapi.sdk.enums.HttpMethod;
import com.alibaba.cloudapi.sdk.enums.ParamPosition;
import com.alibaba.cloudapi.sdk.enums.Scheme;
import com.alibaba.cloudapi.sdk.model.ApiRequest;
import com.alibaba.cloudapi.sdk.model.ApiResponse;
import com.alibaba.cloudapi.sdk.model.HttpClientBuilderParams;
import com.alibaba.fastjson.JSON;
import java.util.Map;

public class HttpsApiClient extends ApacheHttpClient {
    static HttpsApiClient instance = new HttpsApiClient();

    public void init(HttpClientBuilderParams httpClientBuilderParams){
        httpClientBuilderParams.setScheme(Scheme.HTTPS);
        super.init(httpClientBuilderParams);
    }

    public ApiResponse invoke(String path, Object params){
        return invoke(path, params, null);
    }

    public ApiResponse invoke(String path, Object params, Map<String, String> headers){
        byte[] body  = null;
        try {
            body = JSON.toJSONString(params).getBytes(SdkConstant.CLOUDAPI_ENCODING);
        } catch (Exception e) {
            e.printStackTrace();
        }

        ApiRequest request = new ApiRequest(HttpMethod.POST_BODY, path, body);
        request.addHeader("Content-Type", "application/json");
        if (headers != null && !headers.isEmpty()){
            for (Map.Entry<String, String> entry : headers.entrySet()){
                request.addParam(entry.getKey(), entry.getValue(), ParamPosition.HEAD, false);
            }
        }
        return sendSyncRequest(request);
    }

    public ApiResponse invoke(ApiRequest request){
        return sendSyncRequest(request);
    }
}

Step 3: Configure the AK/SK, call path, and call parameters

package com.example.demo;

import com.alibaba.cloudapi.sdk.model.ApiResponse;
import com.alibaba.cloudapi.sdk.model.HttpClientBuilderParams;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;

import java.util.HashMap;
import java.util.Map;

public class Demo {
    public static void main(String[] args) throws Exception {
        String endpoint = "openai.edu-aliyun.com";

        HttpClientBuilderParams httpsParam = new HttpClientBuilderParams();
        httpsParam.setHost(endpoint);
        httpsParam.setAppKey("Your AppKey");
        httpsParam.setAppSecret("Your AppSecret");
        httpsParam.setReadTimeout(300000L);
        HttpsApiClient.instance.init(httpsParam);

        // The call path. For details, see the API documentation.
        String apiPath = "/scc/your_call_path";
        Map<String, Object> params = new HashMap<>();

        // Call parameters
        params.put("parameter_name", "parameter_value");

        ApiResponse apiResponse = HttpsApiClient.instance.invoke(apiPath, params);
        System.out.println("Result Code:" + apiResponse.getCode());
        System.out.println("Message:" + apiResponse.getMessage());

        // Call result
        JSONObject body = JSON.parseObject(new String(apiResponse.getBody()));
        System.out.println("Body:" + body);
    }
}