使用服务端API
# 一、准备工作
# 1、设置不转吗
测试之前现在 全局设置->转码设置 中设置“不转码”,以节省开发成本
# 2、给子账户添加授权

# 3、找到子账户的AccessKey ID
# 4、阅读文档
服务端API->调用方式
简单了解公共参数、返回结果、签名机制的概念
简单了解私有参数的概念
# 二、创建和初始化项目
# 1、创建maven项目 aliyun-vod 2、添加Maven仓库
<dependencies>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.1</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
</dependencies>
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
# 3、复制调用示例
文档:服务端API->调用方式->调用示例
填入必要参数运行程序
根据调用示例创建AliyunVodAPIUtils.java,将入下非通用部分提取出来,其余部分放入工具类,相关方法设置为public
package com.atguigu.aliyunvod;
import com.atguigu.aliyunvod.util.AliyunVodAPIUtils;
import java.util.HashMap;
import java.util.Map;
/**
* 视频点播OpenAPI调用示例
* 以GetVideoPlayAuth接口为例,其他接口请替换相应接口名称及私有参数
*/
public class Main {
public static void main(String[] args) throws Exception {
//生成私有参数,不同API需要修改
Map<String, String> privateParams = generatePrivateParamters();
//生成公共参数,不需要修改
Map<String, String> publicParams = AliyunVodAPIUtils.generatePublicParamters();
//生成OpenAPI地址,不需要修改
String URL = AliyunVodAPIUtils.generateOpenAPIURL(publicParams, privateParams);
//发送HTTP GET 请求
AliyunVodAPIUtils.httpGet(URL);
}
/**
* 生成视频点播OpenAPI私有参数
* 不同API需要修改此方法中的参数
* @return
*/
private static Map<String, String> generatePrivateParamters() {
// 接口私有参数列表, 不同API请替换相应参数
Map<String, String> privateParams = new HashMap<>();
// 视频ID
privateParams.put("VideoId","你上传至视频点播的视频id");
// API名称
privateParams.put("Action", "GetVideoPlayAuth");
return privateParams;
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#
# api请求原理
查看控制台的日志输出
(1)CanonicalizedQueryString:将所有私有参数和公共参数按首字母顺序组装成url查询字符串
(2)StringtoSign:将参数和参数值按照规则编码,构造签名字符串
(3)Signature:使用SHA1算法计算签名字符串的HMAC值,并进行Base64编码,最后得到签名值(Signature)
(4)发送http请求:将签名值(Signature)附加到前面的QueryString的最后,向vod api服务器发送请求
# 4、创建测试类
创建VodApiTest.java
package com.atguigu.aliyunvod;
public class VodApiTest {
}
1
2
3
4
5
2
3
4
5
# 5、测试获取视频播放凭证
/**
* 获取视频播放凭证
* @throws Exception
*/
@Test
public void testGetVideoPlayAuth() throws Exception {
// 接口私有参数列表, 不同API请替换相应参数
Map<String, String> privateParams = new HashMap<>();
// 视频ID
privateParams.put("VideoId","你上传至视频点播的视频id");
// API名称
privateParams.put("Action", "GetVideoPlayAuth");
//生成公共参数,不需要修改
Map<String, String> publicParams = AliyunVodAPIUtils.generatePublicParamters();
//生成OpenAPI地址,不需要修改
String URL = AliyunVodAPIUtils.generateOpenAPIURL(publicParams, privateParams);
//发送HTTP GET 请求
AliyunVodAPIUtils.httpGet(URL);
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 6、测试获取视频播放地址
@Test
public void testGetPlayInfo() throws Exception {
// 接口私有参数列表, 不同API请替换相应参数
Map<String, String> privateParams = new HashMap<>();
// 视频ID
privateParams.put("VideoId","你上传至视频点播的视频id");
// API名称
privateParams.put("Action", "GetPlayInfo");
.......
}
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
编辑 (opens new window)
上次更新: 2024/06/15, 15:12:25