HttpCommonParams.ets 3.46 KB
import { SpConstants } from 'wdConstant';
import { DateTimeUtils, DeviceUtil, SPHelper, StringUtils } from 'wdKit';
import { HttpUtils } from '../utils/HttpUtils';
import { HostEnum, HostManager } from './HttpHostManager';

/**
 * 网络请求参数工具类,TODO 不对外暴露,收缩权限
 */
export class HttpParams {
  static buildHeaders(): Record<string, string> {
    let headers: Record<string, string> = {};
    // 通用请求头
    headers['User-Agent'] = 'Dalvik/2.1.0 (Linux; U; Android 13; 22101317C Build/TKQ1.221013.002)' // TODO
    headers['channel'] = 'rmrb_china_0000' // 自有渠道
    headers['plat'] = DeviceUtil.getPlat()
    headers['Content-Type'] = 'application/json; charset=utf-8'
    headers['device_id'] = DeviceUtil.clientId()
    headers['build_version'] = HttpParams.getVersion()
    headers['adcode'] = HttpUtils.getProvinceCode()
    headers['os_version'] = DeviceUtil.getOsVersion()
    headers['system'] = 'Android' // TODO 后续是否新增鸿蒙标识
    headers['versionCode'] = HttpParams.getVersionCode()
    headers['version_name'] = HttpParams.getVersionName()
    headers['EagleEye-TraceID'] = DeviceUtil.getRandomUUIDForTraceID()
    headers['imei'] = DeviceUtil.clientId()
    headers['Accept-Language'] = 'zh'
    headers['timestamp'] = DateTimeUtils.getTimeStamp() + ''
    headers['mpassid'] = 'ZbHTMeTsfaYDAHqt8ZHIzcPs'
    HttpParams.setLocationHeader(headers)
    if (HttpUtils.isLogin()) {
      headers['RMRB-X-TOKEN'] = HttpUtils.getUserToken()
      headers['cookie'] = 'RMRB-X-TOKEN=' + HttpUtils.getUserToken()
      headers['userId'] = HttpUtils.getUserId()
      headers['userType'] = HttpUtils.getUserType()
    }
    HttpParams.addSpecialHeaders(headers);
    return headers;
  }

  static addSpecialHeaders(headers: Record<string, string>) {
    switch (HostManager.getHost()) {
      case HostEnum.HOST_UAT:
        headers['X-Ca-Stage'] = 'PRE'
        headers['Authorization'] = 'APPCODE 83092caa603a421aa0222308b3f6b27a'
        headers['appCode'] = '83092caa603a421aa0222308b3f6b27a'
        break
      case HostEnum.HOST_SIT:
        headers['X-Ca-Stage'] = 'TEST'
        headers['Authorization'] = 'APPCODE 0af1f9085e484c97b2a44704bae72c07'
        headers['appCode'] = '0af1f9085e484c97b2a44704bae72c07'
        break
      case HostEnum.HOST_PRODUCT:
        headers['X-Ca-Stage'] = 'RELEASE'
        headers['Authorization'] = 'APPCODE 3d4181bceeb94d9780e10dbb6c67bbf6'
        headers['appCode'] = '3d4181bceeb94d9780e10dbb6c67bbf6'
        break
      case HostEnum.HOST_DEV:
        headers['X-Ca-Stage'] = 'TEST'
        headers['Authorization'] = 'APPCODE ff33172859e14f9a8299e3bd769e79f9'
        headers['appCode'] = 'ff33172859e14f9a8299e3bd769e79f9'
        break
      default:
        break
    }
  }

  /**
   * 设置定位信息header
   *
   * @param headers
   */
  static setLocationHeader(headers: Record<string, string>) {
    let cityName = SPHelper.default.getSync(SpConstants.LOCATION_CITY_NAME, '') as string
    if (StringUtils.isNotEmpty(cityName)) {
      headers['city'] = encodeURI(cityName)
    }
    let cityCode = SPHelper.default.getSync(SpConstants.LOCATION_CITY_CODE, '') as string
    if (StringUtils.isNotEmpty(cityCode)) {
      headers['city_dode'] = encodeURI(cityCode)
    }
  }

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

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

  private static getVersionName() {
    // TODO 读取配置
    return '1.0.0';
  }
}