338
微信
Android SDK 使用指南__SDK_API 网关-阿里云
1. 前言
本文档介绍了API网关
产品Android SDK
的使用方式。
该SDK适用于在移动端调用已接入API网关的私有、公开API以及目前在数据市场上售卖的API。
2. 安装API网关 Android SDK
2.1 下载SDK
在API网关控制台左侧找到SDK及示例
菜单,点击前往SDK下载页面。
根据页面提示查看使用手册
或者前往下载SDK
。需要注意区分代码示例及SDK,代码示例
适用于不准备使用SDK的用户参考代码完成API调用工作,而SDK
可以帮助用户简化API调用工作。
点击前往下载SDK
链接后,浏览器会打开新页面,该页面为阿里云移动服务的SDK下载页面。在下载页面上勾选API网关
,然后点击下载Android版
按钮,根据页面提示下载到API网关的Android SDK。
2.2 在工程中依赖SDK
解压下载到的SDK压缩包,将解压出的*.jar
文件放到Android工程的指定目录中,以Android Studio为例:
将alicloud-android-apigateway-sdk-version.jar
放到应用工程的libs
目录下,并在对应工程的build.gradle
文件中添加如下内容:
dependencies {
// 添加API网关android依赖, 从下载的sdk.zip中找到jar并拷贝到当前工程的libs目录下。根据实际文件名填写,version仅为示意。
compile files('libs/alicloud-android-apigateway-sdk-version.jar')
// 添加三方HTTP请求实现,建议使用3.4.1及以上版本
compile 'com.squareup.okhttp3:okhttp:3.4.1'
}
3. 应用程序初始化
在使用Android SDK调用API前,需要对SDK的上下文进行一些初始化配置,如权限声明、传递应用上下文、访问控制等。
3.1 权限声明
在AndroidManifest.xml
中添加如下内容:
<uses-permission android:name="android.permission.INTERNET" />
3.2 AppKey配置
3.2.1 非安全方式配置AppKey及AppSecret
强烈建议只在开发测试阶段使用非安全的方式配置AppKey及AppSecret。强烈建议在控制台中为移动应用创建新的应用,不和其他端上应用共用AppKey。
从控制台中获取到应用的AppKey及AppSecret,并在AndroidManifest.xml
中添加如下内容:
<application>
<meta-data android:name="com.alibaba.apigateway.appKey" android:value="appKey" />
<meta-data android:name="com.alibaba.apigateway.appSecret" android:value="appSecret" />
</application>
3.2.2 较安全地存储AppKey及AppSecret
请使用阿里云提供的移动安全
产品,点击查看产品介绍。
通过使用安全存储
功能将AppKey及AppSecret较安全地存储在移动应用端,点击查看使用文档。请按照上述使用文档联系移动安全产品将API网关所需要AppKey和AppSecret存放在安全图片中。
用户只需要按照上述文档依赖移动安全SDK并正确放置安全图片,API网关会自动从安全图片中获取所需数据。
3.3 SDK初始化
在应用初始化的时候添加SDK初始化代码。以下以MainActivity为例:
package ...;
import ...;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate() {
super.onCreate();
// 初始化API网关SDK
initGatewaySdk();
}
private void initGatewaySdk() {
// 初始化API网关
ApiGatewayClient.init(getApplicationContext(), false);
}
}
注意,如果SDK依赖的AppKey及AppSecret已通过移动安全服务
进行安全存储,请使用以下初始化代码:
ApiGatewayClient.init(getApplicationContext(), true);
4. SDK使用示例
4.1 调用API
同步调用:
以阿里云云市场售卖的阿里短信服务为例。
// 获取服务
RpcService rpcService = ApiGatewayClient.getRpcService();
ApiRequest apiRequest = new ApiRequest();
// 设置请求地址、Path及Method
apiRequest.setAddress("https://sms.market.alicloudapi.com");
apiRequest.setPath("/singleSendSms");
apiRequest.setMethod(HttpMethod.GET);
// 按照文档设置Query参数,支持设置Header参数、Form形式Body及二进制形式Body
apiRequest.addQuery("ParamString", "demo");
apiRequest.addQuery("RecNum", "demo");
apiRequest.addQuery("SignName", "demo");
apiRequest.addQuery("TemplateCode", "demo");
// 设置超时时间及其他
apiRequest.setTimeout(3000);
try {
ApiResponse apiResponse = rpcService.call(apiRequest);
// 处理apiResponse,以下为常用方法
// RequestId
// apiResponse.getRequestId();
// Code
// apiResponse.getCode();
// ErrorMessage
// apiResponse.getErrorMessage();
// Response Content
// apiResponse.getStringBody();
// Response Headers
// apiResponse.getHeaders();
} catch (ApiInvokeException e) {
// 处理异常
}
异步回调:
以阿里云云市场售卖的身份证识别为例。
// 获取服务
RpcService rpcService = ApiGatewayClient.getRpcService();
final ApiRequest apiRequest = new ApiRequest();
// 设置请求地址、Path及Method
apiRequest.setAddress("https://dm-51.data.aliyun.com");
apiRequest.setPath("/rest/160601/ocr/ocr_idcard.json");
apiRequest.setMethod(HttpMethod.POST);
// 按照文档设置二进制形式Body,支持设置Query参数、Header参数、Form形式Body
apiRequest.setStringBody("JSON格式参数");
// 设置支持自签等形式的证书,如果服务端证书合法请勿设置该值,仅在开发测试或者非常规场景下设置。
apiRequest.setTrustServerCertificate(true);
// 设置超时
apiRequest.setTimeout(10000);
rpcService.call(apiRequest, new ApiResponseCallback() {
@Override
public void onSuccess(ApiResponse apiResponse) {
// 处理apiResponse
}
@Override
public void onException(ApiInvokeException e) {
// 处理异常
}
});
最后更新:2016-11-24 11:23:49
上一篇:
TrafficControlItem__数据类型_API_API 网关-阿里云
下一篇:
Android SDK 使用手册__使用SDK调用已开放API_SDK_API 网关-阿里云
DeleteRole__角色管理接口_RAM API文档_访问控制-阿里云
视频转码回调消息讲解___视频专区_媒体转码-阿里云
备案审核需要多长时间?__备案基础介绍_备案须知_备案-阿里云
消息通知__操作指南_批量计算-阿里云
快速安装__osscmd_常用工具_对象存储 OSS-阿里云
监控数据访问指南__监控服务_开发人员指南_对象存储 OSS-阿里云
ListEntitiesForPolicy__授权策略管理接口_RAM API文档_访问控制-阿里云
MySQL 中的数据是否可以放到云数据库 HybridDB 版进行分析__使用管理常见问题_产品相关问题_云数据库 HybridDB-阿里云
SetPasswordPolicy__安全设置接口_RAM API文档_访问控制-阿里云
流控策略与API绑定__流量控制相关接口_API_API 网关-阿里云
相关内容
常见错误说明__附录_大数据计算服务-阿里云
发送短信接口__API使用手册_短信服务-阿里云
接口文档__Android_安全组件教程_移动安全-阿里云
运营商错误码(联通)__常见问题_短信服务-阿里云
设置短信模板__使用手册_短信服务-阿里云
OSS 权限问题及排查__常见错误及排除_最佳实践_对象存储 OSS-阿里云
消息通知__操作指南_批量计算-阿里云
设备端快速接入(MQTT)__快速开始_阿里云物联网套件-阿里云
查询API调用流量数据__API管理相关接口_API_API 网关-阿里云
使用STS访问__JavaScript-SDK_SDK 参考_对象存储 OSS-阿里云