RestTemplate使用带泛型的返回体

33 篇文章 3 订阅

 1、请求方式

    String timestamp = String.valueOf(System.currentTimeMillis());
    Map<String,String> requestMap = new HashMap<>();
    requestMap.put("appId", appId);
    requestMap.put("timestamp",timestamp);
    requestMap.put("currentDay",currentDay);
    requestMap.put("userId", userId);
    requestMap.put("sign", LiveSignUtil.getSign(requestMap, appSecret));
    String url = HttpUtils.appendUrl(String.format(LIVE_VIEW_LOG_URL, live.getChannelId()), requestMap);
    LivePolyvResult<LiveViewLogResponse> responseStr = restTemplate.exchange(url, HttpMethod.GET, null,
                new ParameterizedTypeReference<LivePolyvResult<LiveViewLogResponse>>() {}).getBody();

2、返回体接收实体:

import lombok.Data;

import java.io.Serializable;
import java.util.List;

/**
 * 直播数据结果返回实体
 * @author wuKeFan
 * @date 2022-11-21 16:43:28
 */
@Data
public class LivePolyvResult<T> implements Serializable {

    private static final long serialVersionUID = 1L;

    private String status;

    private List<T> result;

}
import lombok.Data;

import java.io.Serializable;

/**
 * @author wuKeFan
 * @date 2022-11-21 16:28:49
 */
@Data
public class LiveViewLogResponse implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 表示此次播放动作的ID
     */
    private String playId;

    /**
     * 直播账号ID
     */
    private String userId;

    /**
     * 频道号
     */
    private String channelId;

    /**
     * 播放时长,单位:秒
     */
    private Integer playDuration;

    /**
     * 停留时长,单位:秒
     */
    private Integer stayDuration;

    /**
     * 流量大小,单位:bytes
     */
    private Long flowSize;

    /**
     * 直播的场次ID
     */
    private String sessionId;

    /**
     * 使用POLYV观看页的观众ID
     */
    private String param1;

    /**
     * 使用POLYV观看页的观众昵称
     */
    private String param2;

    /**
     * 观看日志类型,默认为live
     * vod:观看回放
     * live:直播
     */
    private String param3;

    /**
     * POLYV系统参数
     */
    private String param4;

    /**
     * POLYV系统参数
     */
    private String param5;

    /**
     * IP地址
     */
    private String ipAddress;

    /**
     * 国家
     */
    private String country;

    /**
     * 省份
     */
    private String province;

    /**
     * 城市
     */
    private String city;

    /**
     * ISP运营商
     */
    private String isp;

    /**
     * 播放视频页面地址
     */
    private String referer;

    /**
     * 用户设备
     */
    private String userAgent;

    /**
     * 操作系统
     */
    private String operatingSystem;

    /**
     * 	浏览器
     */
    private String browser;

    /**
     * 是否为移动端
     */
    private String isMobile;

    /**
     * 查询日期,格式:yyyy-MM-dd
     */
    private String currentDay;

    /**
     * 创建日期 ,13位毫秒级时间戳
     */
    private Long createdTime;

    /**
     * 更新日期 ,13位毫秒级时间戳
     */
    private Long lastModified;

    /**
     * 0 或者不传:普通直播
     * 1:超低延迟直播 rts (已经没有在使用)
     * 2:PRTC直播(无延迟)
     */
    private Integer ptype;

    /**
     * 进入页面时间,13位毫秒级时间戳,非特殊说明,请使用createdTime替代
     */
    private Long firstActiveTime;

    /**
     * 退出页面时间,13位毫秒级时间戳,非特殊说明,请使用createdTime+stayDuration替代
     */
    private Long lastActiveTime;

}

 3、请求API的返回结果格式(json)

{
    "status":"success",
    "result":[
        {
            "playId":"1668873480520X1744091",
            "userId":"7cd100093d",
            "channelId":3546740,
            "playDuration":793,
            "stayDuration":815,
            "flowSize":0,
            "sessionId":"gfjo0wh292",
            "param1":"EE498029",
            "param2":"蒲公英",
            "param3":"vod",
            "param4":"",
            "param5":"",
            "ipAddress":"171.36.213.91",
            "country":"中国",
            "province":"广西",
            "city":"南宁",
            "isp":"联通",
            "referer":"https://live.polyv.cn/watch/3546740?userid=EE498029&amp;ts=1668873478207&amp;sign=8a13425a892e2b2d642ee875e6b5c4fd&amp;nickname=6JKy5YWs6Iux&amp;avatar=https://thirdwx.qlogo.cn/mmopen/vi_32/Q0j4TwGTfTLT2E88bqDTE4r7gVcow0uWwYsnaEpibPUR1K44WgjV3FjdFXuSPll6PibTsqqwSAgJHc4sj6",
            "userAgent":"Mozilla/5.0 (Linux; Android 12; JLH-AN00 Build/HONORJLH-AN00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/86.0.4240.99 XWEB/4343 MMWEBSDK/20220903 Mobile Safari/537.36 MMWEBID/8462 MicroMessenger/8.0.28.2240(0x28001C57) WeChat/arm64 Weixin NetType/WIFI Language/zh_CN ABI/arm64",
            "operatingSystem":"Android 1.x",
            "browser":"微信",
            "isMobile":"Y",
            "currentDay":"2022-11-19",
            "createdTime":1668873556000,
            "lastModified":1668886250000,
            "ptype":0,
            "firstActiveTime":1668873481000,
            "lastActiveTime":1668874301000
        }
    ]
}

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吴名氏.

你的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值