API 通道 SDK

更新时间:2018-06-27 16:41:57

概述

API 通道 SDK 是 IoT 官方服务的 API 通道。 API 通道 基于 HTTP 协议,并通过整合安全组件来提升通道的安全性。

初始化

在初始化 SDK 前,需要正确的配置安全图片,请参见:集成安全图片。然后参考下面的示例代码初始化 SDK:

// 初始化无线保镖
        try {
            SecurityInit.Initialize(app);
        } catch (JAQException ex) {
            Log.e(TAG, "security-sdk-initialize-failed");
        } catch (Exception ex) {
            Log.e(TAG, "security-sdk-initialize-failed");
        }

        // 初始化 IoTAPIClient
        IoTAPIClientImpl.InitializeConfig config = new IoTAPIClientImpl.InitializeConfig();
        config.host = "api.link.aliyun.com";
        config.apiEnv = Env.RELEASE;

        IoTAPIClientImpl impl = IoTAPIClientImpl.getInstance();
        impl.init(app, config);

安全图片未正确集成的时候,会导致安全组件初始化失败。常见的失败情形,请参见常见问题 FAQ

关于 IoTAPIClientImpl 的说明,请参见:IoTAPIClientImpl;

使用方式

请参考如下示例,使用 SDK:

// 构建请求
        IoTRequest request = new IoTRequestBuilder()
                .setScheme(scheme) // 如果是HTTPS,可以省略本设置
                .setHost(host) // 如果是IoT官方服务,可以省略本设置
                .setPath("/kit/debug/ping") // 参考业务API文档,设置path
                .setApiVersion("1.0.0")  // 参考业务API文档,设置apiVersion
                .addParam("input", "测试") // 参考业务API文档,设置params,也可使用setParams(Map<Strign,Object> params)
                .build();

        // 获取Client实例,并发送请求
        IoTAPIClient ioTAPIClient = new IoTAPIClientFactory().getClient();
        ioTAPIClient.send(request, new IoTCallback() {
            @Override
            public void onFailure(IoTRequest request, Exception e) {
                // 根据 e, 处理异常
            }

            @Override
            public void onResponse(IoTRequest request, IoTResponse response) {
                int code = response.getCode();

                // 200 代表成功
                if(200 != code){
                    String mesage = response.getMesasge();
                    String localizedMsg = response.getLocalizedMsg();
                    // 根据 mesage 和 localizedMsg,处理失败信息
                    ...

                    return;
                }

                Object data = response.getData();
                // 解析 data
                ...
            }
        });

混淆配置


-keep public class com.aliyun.iot.aep.sdk.apiclient.** {
    public <methods>;
    public <fields>;
}

更多功能

添加日志

API 通道 SDK 本身没有输出任何请求日志(从性能和安全性的角度考虑)。如果开发者在开发过程中,需要添加相关日志,可以自行添加 Tracker,打印相关日志。详情可以参考 DemoApp 源码 和IoTAPICLientImpl.registerTracker()

身份认证

如果调用的 API 需要校验用户身份,请参见身份认证 SDK;

国际化支持

指定 API 请求的语言,服务器将根据指定的语言进行响应报文填充,如指定语言为 "zh-CN",则 response.localizedMsg 将会返回中文。

IoTAPIClientImpl.getInstance().setLanguage("zh-CN"); // 全局配置,设置后立即起效
                                                             // 当前仅支持 “zh-CN”, "en-US" 两个选项

results matching ""

    No results matching ""