,,JAVA 对接腾讯云直播的实现

,,JAVA 对接腾讯云直播的实现

这篇文章主要介绍了Java 语言(一种计算机语言,尤用于创建网站)语言(一种计算机语言,尤用于创建网站)对接腾讯云直播的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

签名授权

公共静态T TecentDoPostJsonV3(字符串url,字符串钥匙,字符串secretId,TecentPublicParams头,字符串json,OkHttpClient httpClient,Class clazz)抛出异常{

//************* 步骤1:拼接规范请求串*************

String date=DateUtils.format(新日期(长。(标头的值。getx _ TC _ Timestamp()' 000 ')、DateUtils .FORMAT _ SHORT);

String service=url.substring(0,url.indexOf(' . '))));//截取服务类型云直播是活着

系统。出去。println(JSON);

String canonicalRequest='POST\n '

/\n '

\n '

内容类型:应用程序/JSON;charset=utf-8\n '

主机:" URL"\ n

\n '

内容类型;主机\n '

sha 256 hex(JSON);

系统。出去。println(规范请求);

//************* 步骤2:拼接待签名字符串*************

string credential scope=date '/' service '/' ' tc3 _ request ';

string hashedCanonicalRequest=sha 256 hex(规范请求);

字符串算法=' TC3-HMAC-沙256 ';

string string to sign=algorithm ' \ n '头。getx _ TC _ Timestamp()' \ n '凭据范围' \ n ' hashedCanonicalRequest

系统。出去。println(string to sign);

//************* 步骤3:计算签名*************

byte[] secretDate=hmac256(('TC3 '键)。getBytes(CHARSET),date);

byte[]secretService=hmac 256(保密日期,服务);

byte[]secretSigning=hmac 256(特勤局,' tc3 _ request ');

字符串签名=数据类型转换器。打印十六进制二进制(hmac 256(秘密签名,stringToSign)).toLowerCase();

System.out.println(签名);

//************* 步骤4:拼接授权************

字符串授权=算法' ' '凭据=' secretId '/' credentialScope ','

签名头=" " content-type;主机' ',' '签名='签名;

System.out.println(授权);

header.setAuthorization(授权);

JSON对象JSON对象=(JSON对象)JSON。to JSON(表头);

请求正文请求正文=请求正文。create(CONTENT _ TYPE,JSON);

请求。构建器构建器=新请求. builder();

对于(图entry入口:JSON对象。条目集()){

if(entry.getValue()==null){

继续;

}

建筑商。添加标题(字符串。(条目的值。getkey()).replaceAll('_ ','-'),字符串。(条目的值。getvalue());

}

//用okhttp3拼接发送请求

尝试{

响应response=http客户端。新呼叫((生成器)。url('https://' url).post(请求体).build()).执行();

字符串request=response.body().string();

T t=JSON.parseObject(request,clazz);

return t;

} catch (IOException var8) {

引发新的ApiProcessException(错误代码HTTP_REQUEST_ERROR,var 8。getmessage());

}

}

公共静态byte[] hmac256(byte[] key,字符串msg)抛出异常{

MAC MAC=MAC。getinstance(' HMA csha 256 ');

SecretKeySpec SecretKeySpec=new SecretKeySpec(key,MAC。getalgorithm());

麦克。init(secretKeySpec);

返回麦克。做最后(消息。getbytes(CHARSET));

}

公共参数实体类

公共类TecentPublicParams {

私有字符串X _ TC _ Action

私有字符串X _ TC _区域

私有字符串X _ TC _时间戳=long。tostring(系统。当前时间millis()/1000);

私有字符串X _ TC _版本

私有字符串授权;

私有字符串x _ TC _ Language=' zh-CN ';

私有字符串X _ TC _令牌

公共字符串getX_TC_Action() {

返回X _ TC _ Action

}

public void setX _ TC _ Action(String x _ TC _ Action){

X _ TC _ Action=x _ TC _ Action

}

公共字符串getX_TC_Region() {

返回X _ TC _区域

}

public void setX _ TC _ Region(String x _ TC _ Region){

x _ TC _区域=x _ TC _区域;

}

公共字符串getX_TC_Timestamp() {

返回X _ TC _时间戳

}

public void setX _ TC _ Timestamp(String x _ TC _ Timestamp){

X _ TC _时间戳=x _ TC _时间戳

}

公共字符串getX_TC_Version() {

返回X _ TC _版本

}

public void setX _ TC _ Version(String x _ TC _ Version){

x _ TC _版本=x _ TC _版本;

}

公共字符串getAuthorization() {

退货授权;

}

public void setAuthorization(字符串授权){

授权=授权;

}

公共字符串getX_TC_Language() {

返回X _ TC _语言

}

public void setX _ TC _ Language(String x _ TC _ Language){

X _ TC _语言=x _ TC _语言

}

公共字符串getX_TC_Token() {

返回X _ TC _令牌

}

public void setX _ TC _ Token(String x _ TC _ Token){

X _ TC _ Token=x _ TC _ Token

}

}

调用方法

string tencentLiveApi=' live。腾讯云api。com’;

String SECRET _ KEY=' * * *//此处填写自己腾讯云键

String SECRET _ ID=' * * *//此处填写自己腾讯云密匙

TecentPublicParams TecentPublicParams=new TecentPublicParams();

tecentpublicparams。setx _ TC _ Action(' describelivestreampublished list ');//对应方法名

tecentpublicparams。setx _ TC _ Version(' 2018-08-01 ');

TreeMap键值=new TreeMap();//参数

keyValues.put('DomainName ',' * * * ');

keyValues.put('EndTime ',DateUtils.format(new Date(),' yyyy-MM-DD ' t ' hh:MM:ss ' z ' '));

keyValues.put('StartTime ',dateutils。格式(dateutils。addday(新日期(),-30),' yyyy-MM-DD ' t ' hh:MM:ss ' z ' ');

string back=

尝试{

back=LiveUtils .tecentdopostjsonv 3(tencentLiveApi,SECRET_KEY,SECRET_ID,tecentPublicParams,JSON.toJSONString(keyValues),httpClient,String。类);

} catch(异常e) {

e。printstacktrace();

}

到此这篇关于Java 语言(一种计算机语言,尤用于创建网站)语言(一种计算机语言,尤用于创建网站)对接腾讯云直播的实现的文章就介绍到这了,更多相关Java 语言(一种计算机语言,尤用于创建网站)语言(一种计算机语言,尤用于创建网站)腾讯云直播内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • 腾讯云游戏一直黑屏解决方法怎么办,腾讯云游戏黑屏怎么解决
  • 腾讯云游戏卡顿解决方法有哪些,腾讯云游戏卡顿解决方法是什么
  • 腾讯云游戏测试资格,腾讯云游戏测试版
  • 腾讯云游戏下载,腾讯云游戏是什么意思
  • 腾讯云游戏开放哪些游戏,腾讯云游戏支持哪些游戏
  • 腾讯云游戏怎么打开,腾讯云游戏dwm指引
  • 云服务器怎么搭建python环境,腾讯云服务器运行python
  • 腾讯云表格怎么用,怎样创建腾讯文档在线表格
  • 腾讯云主机购买,腾讯云服务器需要购买流量吗
  • 腾讯云游戏启动不了,腾讯start云游戏时间限制
  • 腾讯云游戏要不要下载详情页面,腾讯云游戏要不要下载详情的
  • 腾讯云游戏分辨率调整方法在哪,腾讯云游戏分辨率调整方法是什么
  • 腾讯云游戏会员怎么用,什么是腾讯会员月卡
  • 腾讯云游戏调码率方法怎么调,腾讯云游戏怎么调码率
  • 腾讯云游戏启动不了解决方法怎么回事,腾讯云游戏启动不了解决方法是什么
  • 留言与评论(共有 条评论)
       
    验证码: