HttpCommonParams.ets 3.21 KB
import { SpConstants } from 'wdConstant';
import { AppUtils, 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'] = AppUtils.getAppChannel()
    headers['plat'] = DeviceUtil.getPlat()
    headers['Content-Type'] = 'application/json; charset=utf-8'
    headers['device_id'] = DeviceUtil.clientId()
    headers['build_version'] = AppUtils.getBuildVersion()
    headers['adcode'] = HttpUtils.getProvinceCode()
    headers['os_version'] = DeviceUtil.getOsVersion()
    headers['system'] = AppUtils.getOSName()
    headers['versionCode'] = AppUtils.getAppVersionCode()
    headers['version_name'] = AppUtils.getAppVersionName()
    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 5e1b07c336ac48ae90794fc4d69beaf9'
        headers['appCode'] = '5e1b07c336ac48ae90794fc4d69beaf9'
        break
      case HostEnum.HOST_SIT:
        headers['X-Ca-Stage'] = 'TEST'
        headers['Authorization'] = 'APPCODE b7d32f50747d456d8c84ae51f3baaf56'
        headers['appCode'] = 'b7d32f50747d456d8c84ae51f3baaf56'
        break
      case HostEnum.HOST_PRODUCT:
        headers['X-Ca-Stage'] = 'RELEASE'
        headers['Authorization'] = 'APPCODE c148017260324c3ba7e612757e8146c1'
        headers['appCode'] = 'c148017260324c3ba7e612757e8146c1'
        break
      case HostEnum.HOST_DEV:
        headers['X-Ca-Stage'] = 'TEST'
        headers['Authorization'] = 'APPCODE 9272b6a5ad0549a0ab399d0011109793'
        headers['appCode'] = '9272b6a5ad0549a0ab399d0011109793'
        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)
    }
  }
}