HttpUrlUtils.ets 11.6 KB
import HashMap from '@ohos.util.HashMap'
import { ConfigConstants } from 'wdConstant'
import { DateTimeUtils, Logger, SPHelper } from 'wdKit'

/**
 * 网络请求业务侧工具类
 */
export class HttpUrlUtils {
  /**
   * uat环境url
   */
  static readonly HOST_UAT: string = "https://pd-apis-uat.pdnews.cn";
  /**
   * 中文端sit环境
   */
  static readonly HOST_SIT: string = "https://pd-apis-sit.pdnews.cn";
  /**
   * 正式环境url
   */
  static readonly HOST_PRODUCT: string = "https://pdapis.pdnews.cn";
  /**
   * dev环境url
   */
  static readonly HOST_DEV: string = "https://pd-apis-dev.pdnews.cn";
  /**
   * 启动接口(底导接口)
   */
  static readonly BOTTOM_NAV_PATH: string = "/api/rmrb-bff-display-zh/display/zh/c/bottomNavGroup";

  /**
   * 展现pageInfo接口
   */
  static readonly PAGE_INFO_PATH: string = "/api/rmrb-bff-display-zh/display/zh/c/pageInfo";
  /**
   * 展现comp接口
   */
  static readonly COMP_PATH: string = "/api/rmrb-bff-display-zh/display/zh/c/compInfo";
  /**
   * 详情页面详情接口
   */
  static readonly DETAIL_PATH: string = "/api/rmrb-bff-display-zh/content/zh/c/content/detail";
  /**
   * 批查接口,查询互动相关数据,如收藏数、评论数等
   */
  static readonly INTERACT_DATA_PATH: string = "/api/rmrb-contact/contact/zh/c/content/interactData";

  /**
   * 电子报信息
   */
  static readonly E_NEWSPAPER_INFO_PATH: string = "/api/rmrb-bff-display-zh/display/zh/c/paperApi/paperTime";

  /**
   * 电子报列表
   */
  static readonly E_NEWSPAPER_LIST_PATH: string = "/api/rmrb-bff-display-zh/display/zh/c/paperApi/paperList";
  /**
   * 个人中心  我的预约列表
   */
  static readonly APPOINTMENT_LIST_DATA_PATH: string = "/api/live-center-message/zh/c/live/subscribe";
  /**
   * 个人中心  关注列表详情
   */
  static readonly FOLLOW_LIST_DETAIL_DATA_PATH: string = "/api/rmrb-creator-user/c/creatorDirectory/getContactMasterDetaiPage";
  /**
   * 个人中心  关注列表
   */
  static readonly FOLLOW_LIST_DATA_PATH: string = "/api/rmrb-creator-user/c/creatorDirectory/getCreatorDirectoryTree";
  /**
   * 早晚报列表
   * 根据页面id获取页面楼层列表
   * https://pdapis.pdnews.cn/api/rmrb-bff-display-zh/display/zh/c/pageInfo?pageId=28927
   * 根据楼层Id获取组件节目信息
   * https://pdapis.pdnews.cn/api/rmrb-bff-display-zh/display/zh/c/compInfo?loadStrategy=
   * first_load&refreshTime=1710829610144&pageId=28927&channelStrategy=2&groupId=40621&
   * pageSize=20&pageNum=1&topicId=10000009445
   * */
  static readonly MORNING_EVENING_PAGE_INFO_PATH: string = "/api/rmrb-bff-display-zh/display/zh/c/pageInfo";

  static readonly MORNING_EVENING_COMP_INFO_PATH: string = "/api/rmrb-bff-display-zh/display/zh/c/compInfo";

  private static hostUrl: string = HttpUrlUtils.HOST_UAT;
  private static userId=''
  private static userType=''
  private static token=''

  static getCommonHeaders(): HashMap<string, string> {
    let headers: HashMap<string, string> = new HashMap<string, string>()
    headers.set('User-Agent', 'Dalvik/2.1.0 (Linux; U; Android 13; 22101317C Build/TKQ1.221013.002)')
    headers.set('channel', HttpUrlUtils.getChannel())
    //headers.set('appCode', ConfigConstants.appCode)
    headers.set('plat', HttpUrlUtils.getPlat())
    //headers.set('Authorization', 'APPCODE 83092caa603a421aa0222308b3f6b27a')
    headers.set('Content-Type', 'application/json; charset=utf-8')
    headers.set('timestamp', HttpUrlUtils.getTimestamp())
    headers.set('RMRB-X-TOKEN', HttpUrlUtils.getXToken())
    headers.set('device_id', HttpUrlUtils.getDeviceId())
    if(HttpUrlUtils.token!=''){
      headers.set('cookie', 'RMRB-X-TOKEN='+HttpUrlUtils.token)
    }
    headers.set('build_version', HttpUrlUtils.getVersion())
    headers.set('adcode', HttpUrlUtils.getAdCode())
    headers.set('os_version', HttpUrlUtils.getOsVersion())
    //headers.set('X-Ca-Stage', 'PRE')
    headers.set('versionCode', HttpUrlUtils.getVersionCode())
    headers.set('system', HttpUrlUtils.getTerminalId())
    headers.set('version_name', HttpUrlUtils.getVersionName())
    headers.set('EagleEye-TraceID', 'D539562E48554A60977AF4BECB6D6C7A')
    headers.set('imei', HttpUrlUtils.getImei())
    headers.set('Accept-Language', 'zh')
    headers.set('city', HttpUrlUtils.getCity())
    headers.set('city_dode', HttpUrlUtils.getCityCode())
    // TODO 判断是否登录
    headers.set('userId', HttpUrlUtils.getUserId())
    headers.set('userType', HttpUrlUtils.getUserType())

    headers.set('mpassid', 'ZbHTMeTsfaYDAHqt8ZHIzcPs')
    HttpUrlUtils.addSpecialHeaders(headers);
    // Logger.debug("TAG", '******************* commonHeaders headers start ******************************** ');
    // headers.forEach((v,k)=>{
    //   Logger.debug("TAG", 'getCommonHeaders header: ' + k + ': ' + v);
    // })
    // Logger.debug("TAG", '******************* commonHeaders headers end ******************************** ');
    return headers;
  }

  static addSpecialHeaders(headers: HashMap<string, string>) {
    switch (HttpUrlUtils.hostUrl) {
      case HttpUrlUtils.HOST_UAT:
      // TODO 待优化到常量类里
        headers.set('X-Ca-Stage', 'PRE');
        headers.set('Authorization', 'APPCODE 83092caa603a421aa0222308b3f6b27a');
        headers.set('appCode', '83092caa603a421aa0222308b3f6b27a');
        break
      case HttpUrlUtils.HOST_SIT:
        headers.set('X-Ca-Stage', 'TEST');
        headers.set('Authorization', 'APPCODE 0af1f9085e484c97b2a44704bae72c07');
        headers.set('appCode', '0af1f9085e484c97b2a44704bae72c07');
        break
      case HttpUrlUtils.HOST_PRODUCT:
        headers.set('X-Ca-Stage', 'RELEASE');
        headers.set('Authorization', 'APPCODE 3d4181bceeb94d9780e10dbb6c67bbf6');
        headers.set('appCode', '3d4181bceeb94d9780e10dbb6c67bbf6');
        break
      case HttpUrlUtils.HOST_DEV:
        headers.set('X-Ca-Stage', 'TEST');
        headers.set('Authorization', 'APPCODE ff33172859e14f9a8299e3bd769e79f9');
        headers.set('appCode', 'ff33172859e14f9a8299e3bd769e79f9');
        break
      default:
        break
    }
  }

  static getHost() {
    return HttpUrlUtils.hostUrl;
  }

  private static getCity() {
    // TODO 对接定位
    return '%E5%90%88%E8%82%A5%E5%B8%82';
  }

  private static getChannel() {
    // TODO 对接配置
    return 'rmrb_china_0000';
  }

  private static getPlat() {
    return 'Phone';
  }

  private static getTimestamp() {
    // return DateTimeUtils.getCurrentTime() + '';
    // TODO 暂时写死,有些page 真实时间戳 返回数据为空
    return '155203523';
  }

  private static getXToken() {
    return 'eyJhbGciOiJIUzI1NiIsImtpZCI6ImQ4WkI2QkhxSEZrdjJ2U25BNlRwZEdKRjBHcjItVzBvS2FaYzdLOUUycmcifQ.eyJpc3MiOiJwZW9wbGVzLWRhaWx5LWZvdXJhIiwic3ViIjoicGVvcGxlcy1kYWlseS1mb3VyYSIsImV4cCI6MTcwMzY0OTYwNiwidXNlcklkIjo0NTk3NzYyOTc0NzQ5NDksInVzZXJWZXJzaW9uIjoiNDU5Nzc2Mjk3NDc0OTQ5XzIiLCJ1c2VyTmFtZSI6IkJ1bGlraWtpMTgxIiwidXNlclR5cGUiOjIsImNyZWF0b3JJZCI6NDI2NTM5MH0.jhQ9kylcm3FxWf0-lBMZuLkdtIQ6XpFnAi0AFZJNwfc';
  }

  private static getDeviceId() {
    // TODO
    return '8a81226a-cabd-3e1b-b630-b51db4a720ed';
  }

  private static getVersion() {
    // TODO
    return '202401242103';
  }

  private static getVersionCode() {
    // TODO
    return '7301';
  }

  private static getVersionName() {
    // TODO
    return '7.3.0.1';
  }

  private static getAdCode() {
    return '340000';
  }

  private static getOsVersion() {
    // TODO
    return '12';
  }

  public static getCityCode() {
    // TODO
    return '340100';
  }

  public static getProvinceCode() {
    // TODO
    return '340000';
  }

  /**
   * 地区code
   */
  public static getDistrictCode() {
    // TODO
    return '340103';
  }

  private static getTerminalId() {
    return 'Android';
  }

  private static getImei() {
    // TODO
    return '8a81226a-cabd-3e1b-b630-b51db4a720ed';
  }

  private static getUserId() {
    // TODO 对接登录
    return HttpUrlUtils.userId;
  }

  private static getUserType() {
    return HttpUrlUtils.userType;
  }

  static getVerifyCodeUrl() {
    let url = HttpUrlUtils.hostUrl + "/api/rmrb-user-center/auth/zh/c/sendVerifyCode";
    return url;
  }

  static getAppLoginUrl() :string{
    let url = HttpUrlUtils.getHost() + "/api/rmrb-user-center/auth/zh/c/appLogin";
    return url;
  }

  static getCheckVerifyCodeUrl() {
    let url = HttpUrlUtils.hostUrl + "/api/rmrb-user-center/auth/zh/c/checkVerifyCode";
    return url;
  }

  static getAppointmentListDataUrl() {
    let url = HttpUrlUtils.HOST_SIT + HttpUrlUtils.APPOINTMENT_LIST_DATA_PATH
    return url
  }

  static getFollowListDetailDataUrl() {
    let url = HttpUrlUtils.HOST_SIT + HttpUrlUtils.FOLLOW_LIST_DETAIL_DATA_PATH
    return url
  }

  static getFollowListDataUrl() {
    let url = HttpUrlUtils.HOST_SIT + HttpUrlUtils.FOLLOW_LIST_DATA_PATH
    return url
  }

  static getYcgCommonHeaders(): HashMap<string, string> {
    let headers: HashMap<string, string> = new HashMap<string, string>()

    headers.set('mpassid', 'XGt6jfGUx8ADAKruTyAMdhHj')
    headers.set('city', "%E5%90%88%E8%82%A5%E5%B8%82")
    headers.set('User-Agent', 'Dalvik/2.1.0 (Linux; U; Android 10; PCT-AL10 Build/HUAWEIPCT-AL10)')
    headers.set('channel', "rmrb_china_0000")
    headers.set('appCode', "0af1f9085e484c97b2a44704bae72c07")
    headers.set('Authorization', "APPCODE 0af1f9085e484c97b2a44704bae72c07")
    headers.set('X-Ca-Stage', "TEST")
    headers.set('plat', "Phone")
    headers.set('Content-Type', 'application/json; charset=utf-8')
    headers.set('timestamp', "740977741")
    headers.set('RMRB-X-TOKEN', "eyJhbGciOiJIUzI1NiIsImtpZCI6IklFazBGclhfV2RYMEx1ZktDU01iYTVYd0VmUHZ6a043T0F5UTRFLWIwWU0ifQ.eyJpc3MiOiJwZW9wbGVzLWRhaWx5LWZvdXJhIiwic3ViIjoicGVvcGxlcy1kYWlseS1mb3VyYSIsImV4cCI6MTcxMDc1NjM3NywidXNlcklkIjo1NjczODc0NzcwNjM2MjEsInVzZXJWZXJzaW9uIjoiNTY3Mzg3NDc3MDYzNjIxXzAiLCJ1c2VyTmFtZSI6IiVFNCVCQSVCQSVFNiVCMCU5MSVFNiU5NyVBNSVFNiU4QSVBNSVFNyVCRCU5MSVFNSU4RiU4QmFQcnRxNSIsInVzZXJUeXBlIjoxLCJjcmVhdG9ySWQiOm51bGwsInVzZXJJZFpoIjpudWxsfQ.KBkF0Yki-JWlq0ZIOCzgKwQc1ycBnFHa6CF-rMPRgHU")
    headers.set('device_id', "5156098c-6c44-3514-af70-04a0139a9327")
    // headers.set('cookie', 'RMRB-X-TOKEN=eyJhbGciOiJIUzI1NiIsImtpZCI6IklFazBGclhfV2RYMEx1ZktDU01iYTVYd0VmUHZ6a043T0F5UTRFLWIwWU0ifQ.eyJpc3MiOiJwZW9wbGVzLWRhaWx5LWZvdXJhIiwic3ViIjoicGVvcGxlcy1kYWlseS1mb3VyYSIsImV4cCI6MTcxMDU4Mzk0MywidXNlcklkIjo1NjczODc0NzcwNjM2MjEsInVzZXJWZXJzaW9uIjoiNTY3Mzg3NDc3MDYzNjIxXzAiLCJ1c2VyTmFtZSI6IiVFNCVCQSVCQSVFNiVCMCU5MSVFNiU5NyVBNSVFNiU4QSVBNSVFNyVCRCU5MSVFNSU4RiU4QmFQcnRxNSIsInVzZXJUeXBlIjoxLCJjcmVhdG9ySWQiOm51bGwsInVzZXJJZFpoIjpudWxsfQ._LTKrUxQozpCj1XMhx1TWOIxn5gjDveoPuMFGpI0g_8')
    headers.set('build_version', "202403112023")
    headers.set('adcode', "340000")
    headers.set('os_version', "10")
    headers.set('city_dode', "340100")
    headers.set('userId', "567387477063621")
    headers.set('versionCode', "7302")
    headers.set('system', "Android")
    headers.set('version_name', "7.3.0.2")
    headers.set('EagleEye-TraceID', '101118E4D006453DA549A82AA8CAFBFE')
    headers.set('imei', "5156098c-6c44-3514-af70-04a0139a9327")
    headers.set('userType', "1")
    headers.set('Accept-Language', 'zh')

    // HttpUrlUtils.addSpecialHeaders(headers);
    // Logger.debug("TAG", '******************* commonHeaders headers start ******************************** ');
    // headers.forEach((v,k)=>{
    //   Logger.debug("TAG", 'getCommonHeaders header: ' + k + ': ' + v);
    // })
    // Logger.debug("TAG", '******************* commonHeaders headers end ******************************** ');
    return headers;
  }

  public static setUserId(userId:string){
    HttpUrlUtils.userId=userId;
  }

  public static setUserType(userType:string){
    HttpUrlUtils.userType=userType;
  }

  public static setUserToken(token:string){
    HttpUrlUtils.token=token;
  }

}