API通道SDK,提供IoT业务协议封装的https请求能力,并通过整合安全组件来提升通道的安全性。

依赖 SDK 概述
日志 基础依赖SDK,提供客户端统一日志打印,日志等级控制,分模块日志隔离等能力

初始化

在初始化 SDK 前,需要正确的配置安全图片,请参见集成安全图片

参考下面的示例代码初始化SDK

#import <IMSApiClient/IMSApiClient.h>

//指定 API 通道服务器域名和环境
[IMSConfiguration initWithHost:@"api.link.aliyun.com" serverEnv:IMSServerRelease];
// 海外环境,请参考如下设置
//[IMSConfiguration initWithHost:@"api-iot.ap-southeast-1.aliyuncs.com" serverEnv:IMSServerRelease];     

使用说明

API 调用示例如下。

#import <IMSApiClient/IMSApiClient.h>

// 构建请求
NSDictionary *params = @{@"input":@"测试"};
IMSIoTRequestBuilder *builder = [[IMSIoTRequestBuilder alloc] initWithPath:@"/kit/debug/ping"
                                                                apiVersion:@"1.0.0"
                                                                    params:params];
// 可选参数
// [builder setHost:@"xxx"];//指定API host
// [builder setScheme:@"https"];

//通过 IMSRequestClient 发送请求
[IMSRequestClient asyncSendRequest:builder.build responseHandler:^(NSError * _Nullable error, IMSResponse * _Nullable response) {
    if (error) {
        //处理Error,非服务端返回的错误都通过该Error回调
    }
    else {
        if (response.code == 200) {
            //成功,处理response.data
        }
        else {
            //处理服务端错误,可通过response.localizedMsg展示错误Toast
        }
    }
}];     

设置语言

指定 API 请求的语言,服务器将根据指定的语言进行响应报文填充,如指定语言为 zh-CN,则response.localizedMsg将会返回中文。目前支持:中文简体、英文、法语、德语、日语、韩语、西班牙语、俄语、印度语、意大利语。

// 设置服务端语言:zh-CN、en-US、fr-FR、de-DE、ja-JP、ko-KR、es-ES、ru-RU、hi-IN、it-IT
[IMSConfiguration sharedInstance].language = @"zh-CN";

超时时长设置

指定API请求的超时时长。

// 设置全局超时时长,对所有API请求都生效,不设置默认10s
[IMSConfiguration sharedInstance].timeoutInterval = 10;

// 针对局部请求超时时长设置
NSDictionary *params = @{@"input":@"测试"};
IMSIoTRequestBuilder *builder = [[IMSIoTRequestBuilder alloc] initWithPath:@"/kit/debug/ping"
                                                                apiVersion:@"1.0.0"
                                                                    params:params];
// 可选参数,不设置默认使用全局配置超时时长
builder.timeoutInterval = 10;

//通过 IMSRequestClient 发送请求
[IMSRequestClient asyncSendRequest:builder.build responseHandler:^(NSError * _Nullable error, IMSResponse * _Nullable response) {
    if (error) {
        //处理Error,非服务端返回的错误都通过该Error回调
    }
    else {
        if (response.code == 200) {
            //成功,处理response.data
        }
        else {
            //处理服务端错误,可通过response.localizedMsg展示错误Toast
        }
    }
}]; 

打开调试日志

如需打开调试日志,请参见日志SDK