创建阿里云账号 为了访问短信服务,您需要有一个阿里云账号。如果没有,可首先按照如下步骤创建阿里云账号:
步骤 1
访问阿里云 官方网站,单击页面上的 免费注册 按钮。 按照屏幕提示完成注册流程并进行实名认证,短信服务只支持实名认证用户使用。为了更好地使用阿里云服务,建议尽快完成实名认证,否则部分阿里云服务将无法使用。具体实名认证流程,请参考 这里。
步骤 2
获取阿里云访问密钥 为了使用短信发送API-JAVA SDK,您必须申请阿里云的访问密钥。
阿里云访问秘钥是阿里云为用户使用 API(非控制台)来访问其云资源设计的“安全口令”。您可以用它来签名 API 请求内容以通过服务端的安全验证。
该访问秘钥成对(AccessKeyId 与 AccessKeySecret)生成和使用。每个阿里云用户可以创建多对访问秘钥,且可随时启用(Active)、禁用(Inactive)或者删除已经生成的访问秘钥对。
您可以通过阿里云控制台的秘钥管理页面 创建、管理所有的访问秘钥对,且保证它处于“启用”状态。由于访问秘钥是阿里云对 API 请求进行安全验证的关键因子,请妥善保管你的访问秘钥。如果某些秘钥对出现泄漏风险,建议及时删除该秘钥对并生成新的替代秘钥对。
步骤 3
在控制台完成加速产品的开通 获取必备的API调用参数
参数列表
入参列表
参数名称 | 参数类型 | 必填与否 | 样例取值 | 参数说明 |
---|---|---|---|---|
IpAddress | String | 必须 | 192.168.1.2 | 加速IP地址 |
port | Integer | 必须 | 80 | 加速端口 |
出参列表
参数名称 | 参数类型 | 样例取值 | 参数说明 |
---|---|---|---|
RequestId | String | 89078768788ada | 请求ID |
Code | String | OK | 状态码-返回OK代表请求成功,其他错误码详见错误码列表 |
Message | String | 请求成功 | 状态码的描述 |
ResultModule | Object | 返回结果 | 具体校验结果,详见ResultModule样例 |
ResultModule 样例
参数名称 | 参数类型 | 样例取值 | 参数说明 |
---|---|---|---|
BandId | Long | 1000001L | 当前宽带Id |
UploadBandwidth | Integer | 10M | 当前上行带宽,单位Mbps |
DownloadBandwidth | Integer | 10M | 当前下行带宽,单位Mbps |
BandOfferList | List | -- | 可订购的加速产品列表,详见BandOffer样例 |
BandOffer 样例
参数名称 | 参数类型 | 样例取值 | 参数说明 |
---|---|---|---|
OfferId | Long | 220980804008L | 加速产品ID |
Bandwidth | Integer | 100M | 目标加速带宽,单位Mbps |
Duration | Long | 30 | 加速时长,单位小时,包月返回9999 |
Direction | String | UP/DOWN | 加速方向,UP上行加速,DOWN 下行加速 |
技术对接步骤
1. 下载SDK工具包
SDK工具包中一共包含了2个类库,一个aliyun-java-sdk-core包,另外一个是snsu-open-api包,将这两个包执行mvn package命令或者mvn deploy命令打包出相应的jar包,添加到工程类库中依赖使用。
2. 编写样例程序
/** * 产品名称:云通信加速API产品,开发者无需替换 / static final String product = "Snsuapi"; /* * 产品域名,开发者无需替换 */ static final String domain = "snsuapi.aliyuncs.com";
// TODO 此处需要替换成开发者自己的AK(在阿里云访问控制台寻找)
static final String accessKeyId = "yourAccessKeyId";
static final String accessKeySecret = "yourAccessKeySecret";
public static BandPrecheckResponse bandPreCheck() {
BandPrecheckResponse response = new BandPrecheckResponse();
/**
* 可自助调整超时时间
*/
System.setProperty("sun.net.client.defaultConnectTimeout", "10000");
System.setProperty("sun.net.client.defaultReadTimeout", "10000");
try {
/**
* 初始化acsClient,暂不支持region化
*/
IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessKeySecret);
DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);
IAcsClient acsClient = new DefaultAcsClient(profile);
/**
* 组装请求对象-具体描述见控制台-文档部分内容
*/
BandPrecheckRequest request = new BandPrecheckRequest();
String ipAddress = "127.0.0.1";
Integer port = 80;
request.setIpAddress(ipAddress);
request.setPort(port);
/**
* 禁止Client的自动重试,如果失败,最好选择手动重试
*/
response = acsClient.getAcsResponse(request,false,0);
/**
* 具体的错误码可以参考具体的文档
*/
BandPrecheckResponse.ResultModule resultModule =response.getResultModule();
/**
* 入参的BandId
*/
resultModule.getBandId();
/**
* 当前宽带的下行速率,单位是 Mbps
*/
Integer downLoadBandWidth = resultModule.getDownloadBandwidth();
/**
* 当前宽带的上行速率,单位是 Mbps
*/
Integer upLoadBandWidth = resultModule.getDownloadBandwidth();
/**
* 当前带宽可购买的加速产品Offer
* 如果当前返回值为null 或者 空列表,表示当前没有合适的加速服务
*/
List<BandPrecheckResponse.ResultModule.BandOfferListItem> bandOfferListItemList = resultModule.getBandOfferList();
for (BandPrecheckResponse.ResultModule.BandOfferListItem item : bandOfferListItemList) {
System.out.println(item.getOfferId()); // Long 类型
System.out.println(item.getBandwidth()); // 单位 Mbps
System.out.println(item.getDirection()); // up, down 两个值,UP:上行; DOWN:下行
System.out.println(item.getDuration()); // 可用时长 BandOfferListItem.Duration >= 9999 表示包月
}
return response;
} catch (ClientException e) {
/**
* 需要捕获Client异常
*/
e.printStackTrace();
/**
* todo 进行一些特定业务处理,重试或者抛出异常
*/
}
return response;
}
在文档使用中是否遇到以下问题
更多建议
匿名提交