保利威文档中心

幫助中心

快速接入

更新時間:2026-03-18 14:08:21

前提條件

在安裝和使用保利威點播Java SDK功能前,確保B端已經具備如下環境:

1.添加Maven依賴

  將如下依賴加入到專案的POM檔案中:

注意:受 Maven 中央倉庫網路限制,阿里雲雲效 Maven 中央代理倉庫可能會出現依賴查找不到的情況,建議使用中央倉庫:https://repo1.maven.org/maven2/

<dependency>
    <groupId>net.polyv</groupId>
    <artifactId>polyv-java-vod-sdk</artifactId>
    <version>2.2.8</version>
</dependency> 

注意:為了消除Java的冗長程式碼,SDK使用了Lombok框架,請在IntelliJ或者Eclipse 中配置對Lombok的支援

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.16</version>
</dependency>

2.初始化系統

  在執行測試程式碼之前,需要B端先初始化系統配置,包括userId、secretKey,如沒有以上資訊,請參考本文前提條件部分取得,初始化範例程式碼如下,任選一種:

   /**
     * 初始化配置,请配置自己的账号信息
     */
    public static void initPolyvVod(){
        String userId = "xxx";
        String secretKey = "xxx";
        VodGlobalConfig.init(userId, secretKey);
        log.debug("--初始化完成--");
    }
     /**
     * 初始化配置并初始化 HTTP CLIENT 连接池超时时间和最大连接数配置,请配置自己的账号信息
     */
    public static void initPolyvVod(){
        String userId = "xxx";
        String secretKey = "xxx";
        Integer timeOut = 20000;  //HTTP CLIENT 连接池超时时间
        Integer maxClientNum = 100;  //HTTP CLIENT 最大连接数      
        VodGlobalConfig.init(userId, secretKey, timeOut, maxClientNum);
        log.debug("--初始化完成--");
    }
     /**
     * 初始化配置并初始化 HTTP CLIENT 代理信息,一般使用在正式服务器不能连接外网,必须通过代理连接,请配置自己的账号信息
     */
    public static void initPolyvVod(){
        String userId = "xxx";
        String appSecret = "xxx";        
        String hostName = '127.0.0.1';  //代理的ip
        int port = 8888;  //代理的端口      
        String scheme = 'http';  //  代理的协议    
        VodGlobalConfig.init(userId,  appSecret,  hostName,  port,  scheme);
        log.debug("--初始化完成--");
    }

  以上程式碼一般配置於隨系統啟動執行一次的全域初始化中,如用spring框架,可以參考如下:

package net.polyv.vod.config;

import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;

import lombok.extern.slf4j.Slf4j;

/**
 * 默认启动配置类
 * @author: thomas
 **/
@Slf4j
@Component
public class StartupListener implements ApplicationContextAware {
    
    @Override
    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
        String userId = "xxx";
        String secretKey = "xxx";
        VodGlobalConfig.init(userId, secretKey);
        log.debug("--初始化完成--");
    }
    
    
}

3.執行測試程式碼

  測試取得使用者空間及流量情況,單元測試程式碼如下:

package net.polyv.vod.v1.service;

import java.util.Calendar;

import org.junit.Assert;

import com.alibaba.fastjson.JSON;

import lombok.extern.slf4j.Slf4j;
import net.polyv.common.v1.exception.PloyvSdkException;
import net.polyv.vod.v1.config.VodGlobalConfig;
import net.polyv.vod.v1.entity.account.VodAccountSpaceDataRequest;
import net.polyv.vod.v1.entity.account.VodAccountSpaceDataResponse;
import net.polyv.vod.v1.service.account.impl.VodAccountServiceImpl;
import net.polyv.vod.v1.util.VodSignUtil;

/**
 * @author: sadboy
 **/
@Slf4j
public class VodVideoDemo {

  /**
   * 调用demo,必须处理PloyvSdkException。
   *
   * 参数合法性校验:SDK采用自定义验证框架对输入参数进行校验,如有参数不合格,将抛出PloyvSdkException异常,exception的message
   * 包括具体校验不通过的字段信息,此异常是运行时异常,必须捕获处理相关业务逻辑;
   *
   * 解析返回数据:解析返回数据,如SDK调用正常成功,将封装响应对象,正常返回,如服务器返回错误信息,SDK将将抛出PloyvSdkException异常,exception的message
   * 包括具体服务器执行错误信息,此异常是运行时异常,必须捕获处理相关业务逻辑;
   * @param args
   */
  public static void main(String[] args) {
    String userId = "xxx";
    String secretKey = "xxx";
    VodGlobalConfig.init(userId, secretKey);
    log.debug("--初始化完成--");
    try {
      Calendar instance = Calendar.getInstance();
      instance.set(2020, 10, 13);
      VodAccountSpaceDataRequest vodAccountSpaceDataRequest = new VodAccountSpaceDataRequest();
      VodAccountSpaceDataResponse vodAccountSpaceDataResponse;
      vodAccountSpaceDataRequest.setDate(instance.getTime());
      vodAccountSpaceDataResponse = new VodAccountServiceImpl().getAccountSpaceFlow(vodAccountSpaceDataRequest);
      Assert.assertNotNull(vodAccountSpaceDataResponse);
      if (vodAccountSpaceDataResponse != null) {
        log.debug("测试获取用户空间及流量情况成功,{}", JSON.toJSONString(vodAccountSpaceDataResponse));
      }
    } catch (PloyvSdkException e) {
      //参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage()
      log.error(e.getMessage(), e);
      // 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
    } catch (Exception e) {
      log.error("SDK调用异常", e);
    }
  }

}

  執行程式碼後,控制台應有如下關鍵輸出,表示整合完成:

2021-04-02 11:31:46:670 +0800 [main] DEBUG net.polyv.common.v1.base.HttpUtil - http 请求 url: https://api.polyv.net/v2/user/1b448be323/main , 请求参数: {"date":"2020-11-13","requestId":"f8a5283094714cb58d9aeefa5e00b1b0","sign":"216C1386579861008123892F76C83E28A8D7564E","ptime":"1617334306444"}
2021-04-02 11:31:47:320 +0800 [main] DEBUG net.polyv.common.v1.base.HttpUtil - HTTP请求耗时分析,请求URL: https://api.polyv.net/v2/user/1b448be323/main , 请求头信息:[{"elements":[{"name":"application/x-www-form-urlencoded","parameterCount":1,"parameters":[{"name":"charset","value":"UTF-8"}]}],"name":"Content-type","value":"application/x-www-form-urlencoded; charset=UTF-8"},{"elements":[{"name":"1b448be323","parameterCount":0,"parameters":[]}],"name":"java-sdk-user-id","value":"1b448be323"},{"elements":[{"name":"JAVA_VOD_SDK","parameterCount":0,"parameters":[]}],"name":"User-Agent","value":"JAVA_VOD_SDK"},{"elements":[{"name":"JAVA_VOD_SDK","parameterCount":0,"parameters":[]}],"name":"source","value":"JAVA_VOD_SDK"},{"elements":[{"name":"1.0.25","parameterCount":0,"parameters":[]}],"name":"version","value":"1.0.25"}] ,   耗时: 556 ms
2021-04-02 11:31:47:322 +0800 [main] DEBUG net.polyv.common.v1.base.HttpUtil - http 请求结果: {"code":200,"status":"success","message":"success","data":{"videoCount":43,"totalFlow":21474836480,"usedSpace":0,"usedFlow":0,"totalSpace":21474836480,"userId":"1b448be323","email":"sdk-demo@polyv.net"}}
2021-04-02 11:31:47:367 +0800 [main] DEBUG net.polyv.vod.v1.service.VodVideoDemo - 测试获取用户空间及流量情况成功,{"email":"sdk-demo@polyv.net","totalFlow":21474836480,"totalSpace":21474836480,"usedFlow":0,"usedSpace":0,"userId":"1b448be323"}

  至此,B端已經完成保利威點播Java SDK安裝配置,可以使用點播SDK進行其他功能開發和測試,如B端接入過程有任何問題,直接使用線上客服找到售後技術支援提問,請將問題的執行環境、操作步驟、錯誤回饋資訊、聯絡方式同步回饋,便於問題的快速定位和解決。

联系客服,在线咨询