HttpUrlUtils.ets 7 KB
import HashMap from '@ohos.util.HashMap'
import { ConfigConstants } from 'wdConstant'
import { DateTimeUtils, Logger } 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";

  private static hostUrl: string = HttpUrlUtils.HOST_PRODUCT;

  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())
    headers.set('cookie', 'RMRB-X-TOKEN=eyJhbGciOiJIUzI1NiIsImtpZCI6ImQ4WkI2QkhxSEZrdjJ2U25BNlRwZEdKRjBHcjItVzBvS2FaYzdLOUUycmcifQ.eyJpc3MiOiJwZW9wbGVzLWRhaWx5LWZvdXJhIiwic3ViIjoicGVvcGxlcy1kYWlseS1mb3VyYSIsImV4cCI6MTcwMzY0OTYwNiwidXNlcklkIjo0NTk3NzYyOTc0NzQ5NDksInVzZXJWZXJzaW9uIjoiNDU5Nzc2Mjk3NDc0OTQ5XzIiLCJ1c2VyTmFtZSI6IkJ1bGlraWtpMTgxIiwidXNlclR5cGUiOjIsImNyZWF0b3JJZCI6NDI2NTM5MH0.jhQ9kylcm3FxWf0-lBMZuLkdtIQ6XpFnAi0AFZJNwfc')
    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 '459776297474949';
  }

  private static getUserType() {
    return '2';
  }
}