API 通道 SDK
更新时间:2019-05-27 10:45:08
概述
API 通道 SDK,提供 IoT 业务协议封装的 https 请求能力,并通过整合安全组件来提升通道的安全性。
依赖 SDK | 概述 |
---|---|
日志 | 基础依赖SDK,提供客户端统一日志打印,日志等级控制,分模块日志隔离等能力 |
初始化
在初始化 SDK 前,需要正确的配置安全图片,请参见:集成安全图片(iOS)
然后参考下面的示例代码初始化 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
[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 - 初始化