HttpCommonParams.ets 6.08 KB
import { SpConstants } from 'wdConstant';
import { SPHelper, StringUtils } from 'wdKit';
import { HostEnum, HostManager } from './HttpHostManager';

/**
 * 网络请求参数工具类
 */
export class HttpParams {
  private static userId = ''
  private static userType = ''
  private static token = ''

  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)'
    headers['channel'] = HttpParams.getChannel()
    headers['plat'] = HttpParams.getPlat()
    headers['Content-Type'] = 'application/json; charset=utf-8'
    headers['timestamp'] = HttpParams.getTimestamp()
    headers['RMRB-X-TOKEN'] = HttpParams.getXToken()
    headers['device_id'] = HttpParams.getDeviceId()
    if (HttpParams.getXToken() != '') {
      headers['cookie'] = 'RMRB-X-TOKEN=' + HttpParams.getXToken()
    }
    headers['build_version'] = HttpParams.getVersion()
    headers['adcode'] = HttpParams.getAdCode()
    headers['os_version'] = HttpParams.getOsVersion()
    headers['versionCode'] = HttpParams.getVersionCode()
    headers['system'] = HttpParams.getTerminalId()
    headers['version_name'] = HttpParams.getVersionName()
    headers['EagleEye-TraceID'] = 'D539562E48554A60977AF4BECB6D6C7A'
    headers['imei'] = HttpParams.getImei()
    headers['Accept-Language'] = 'zh'
    HttpParams.setLocationHeader(headers)
    // // TODO 判断是否登录
    headers['userId'] = HttpParams.getUserId()
    headers['userType'] = HttpParams.getUserType()
    //
    headers['mpassid'] = 'ZbHTMeTsfaYDAHqt8ZHIzcPs'
    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
    }
  }

  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 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() {
    if (StringUtils.isNotEmpty(HttpParams.token)) {
      return HttpParams.token
    }
    HttpParams.token = SPHelper.default.getSync(SpConstants.USER_JWT_TOKEN, "") as string
    if (StringUtils.isNotEmpty(HttpParams.token)) {
      return HttpParams.token
    }
    // return 'eyJhbGciOiJIUzI1NiIsImtpZCI6ImQ4WkI2QkhxSEZrdjJ2U25BNlRwZEdKRjBHcjItVzBvS2FaYzdLOUUycmcifQ.eyJpc3MiOiJwZW9wbGVzLWRhaWx5LWZvdXJhIiwic3ViIjoicGVvcGxlcy1kYWlseS1mb3VyYSIsImV4cCI6MTcwMzY0OTYwNiwidXNlcklkIjo0NTk3NzYyOTc0NzQ5NDksInVzZXJWZXJzaW9uIjoiNDU5Nzc2Mjk3NDc0OTQ5XzIiLCJ1c2VyTmFtZSI6IkJ1bGlraWtpMTgxIiwidXNlclR5cGUiOjIsImNyZWF0b3JJZCI6NDI2NTM5MH0.jhQ9kylcm3FxWf0-lBMZuLkdtIQ6XpFnAi0AFZJNwfc';
    return ''
  }

  static getRefreshToken(): string {
    let refreshToken = SPHelper.default.getSync(SpConstants.USER_REFRESH_TOKEN, "")
    if (StringUtils.isNotEmpty(refreshToken)) {
      return refreshToken as string;
    }
    return '';
  }

  public 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';
  }

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

  public static getUserId(): string {
    // TODO 对接登录
    if (StringUtils.isNotEmpty(HttpParams.userId)) {
      return HttpParams.userId
    }
    HttpParams.userId = SPHelper.default.getSync(SpConstants.USER_ID, "") as string
    return HttpParams.userId;
  }

  public static getUserType() {
    if (StringUtils.isNotEmpty(HttpParams.userType)) {
      return HttpParams.userType
    }
    HttpParams.userType = SPHelper.default.getSync(SpConstants.USER_Type, "") as string
    return HttpParams.userType;
  }

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

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

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