zhangbo1_wd

自动刷新token封装修改泛型

@@ -19,9 +19,11 @@ export class HttpBizUtil { @@ -19,9 +19,11 @@ export class HttpBizUtil {
19 * @param headers 请求header参数 19 * @param headers 请求header参数
20 * @returns 返回值 20 * @returns 返回值
21 */ 21 */
22 - static get<T = string>(url: string, headers?: HashMap<string, string>): Promise<ResponseDTO<T>> {  
23 - return new Promise<ResponseDTO<T>>((success, debug) => {  
24 - WDHttp.get<ResponseDTO<T>>(url, headers).then((resDTO: ResponseDTO<T>) => { 22 + static get<T = ResponseDTO<string>>(url: string, headers?: HashMap<string, string>): Promise<T> {
  23 + return new Promise<T>((success, debug) => {
  24 + WDHttp.get<T>(url, headers).then((originalRes: T) => {
  25 + try {
  26 + let resDTO = originalRes as ResponseDTO
25 Logger.debug(TAG, 'get: ' + resDTO.code) 27 Logger.debug(TAG, 'get: ' + resDTO.code)
26 Logger.debug(TAG, 'get: ' + resDTO.message) 28 Logger.debug(TAG, 'get: ' + resDTO.message)
27 // 403:临时token;406:强制下线、封禁、清空登录信息还要跳转登录页面 29 // 403:临时token;406:强制下线、封禁、清空登录信息还要跳转登录页面
@@ -33,16 +35,20 @@ export class HttpBizUtil { @@ -33,16 +35,20 @@ export class HttpBizUtil {
33 } 35 }
34 Logger.debug(TAG, 'get again send: ' + token) 36 Logger.debug(TAG, 'get again send: ' + token)
35 // refreshToken为空场景不处理,直接请求接口。 37 // refreshToken为空场景不处理,直接请求接口。
36 - WDHttp.get<ResponseDTO<T>>(url, headers).then((resDTO: ResponseDTO<T>) => {  
37 - Logger.debug(TAG, 'get again: ' + resDTO.message)  
38 - success(resDTO) 38 + WDHttp.get<T>(url, headers).then((againResDTO: T) => {
  39 + Logger.debug(TAG, 'get again: ' + againResDTO)
  40 + success(againResDTO)
39 }).catch((res: object) => { 41 }).catch((res: object) => {
40 debug(res) 42 debug(res)
41 }) 43 })
42 }); 44 });
43 } else { 45 } else {
44 - success(resDTO) 46 + success(originalRes)
45 } 47 }
  48 + } catch (e) {
  49 + debug(originalRes)
  50 + }
  51 +
46 }).catch((res: object) => { 52 }).catch((res: object) => {
47 debug(res) 53 debug(res)
48 }) 54 })
@@ -56,9 +62,11 @@ export class HttpBizUtil { @@ -56,9 +62,11 @@ export class HttpBizUtil {
56 * @param headers 请求header参数 62 * @param headers 请求header参数
57 * @returns 返回值 63 * @returns 返回值
58 */ 64 */
59 - static post<T = string>(url: string, data?: object, headers?: HashMap<string, string>): Promise<ResponseDTO<T>> {  
60 - return new Promise<ResponseDTO<T>>((success, debug) => {  
61 - WDHttp.post<ResponseDTO<T>>(url, data, headers).then((resDTO: ResponseDTO<T>) => { 65 + static post<T = ResponseDTO<string>>(url: string, data?: object, headers?: HashMap<string, string>): Promise<T> {
  66 + return new Promise<T>((success, debug) => {
  67 + WDHttp.post<T>(url, data, headers).then((originalRes: T) => {
  68 + try {
  69 + let resDTO = originalRes as ResponseDTO
62 Logger.debug(TAG, 'post: ' + resDTO.code) 70 Logger.debug(TAG, 'post: ' + resDTO.code)
63 Logger.debug(TAG, 'post: ' + resDTO.message) 71 Logger.debug(TAG, 'post: ' + resDTO.message)
64 // 403:临时token;406:强制下线、封禁、清空登录信息还要跳转登录页面 72 // 403:临时token;406:强制下线、封禁、清空登录信息还要跳转登录页面
@@ -69,14 +77,17 @@ export class HttpBizUtil { @@ -69,14 +77,17 @@ export class HttpBizUtil {
69 headers.replace('cookie', 'RMRB-X-TOKEN=' + token) 77 headers.replace('cookie', 'RMRB-X-TOKEN=' + token)
70 } 78 }
71 // refreshToken为空场景不处理,直接请求接口。 79 // refreshToken为空场景不处理,直接请求接口。
72 - WDHttp.post<ResponseDTO<T>>(url, headers).then((resDTO: ResponseDTO<T>) => {  
73 - success(resDTO) 80 + WDHttp.post<T>(url, headers).then((againResDTO: T) => {
  81 + success(againResDTO)
74 }).catch((res: object) => { 82 }).catch((res: object) => {
75 debug(res) 83 debug(res)
76 }) 84 })
77 }); 85 });
78 } else { 86 } else {
79 - success(resDTO) 87 + success(originalRes)
  88 + }
  89 + } catch (e) {
  90 + success(originalRes)
80 } 91 }
81 }).catch((res: object) => { 92 }).catch((res: object) => {
82 debug(res) 93 debug(res)
@@ -372,7 +372,7 @@ class MinePageDatasModel{ @@ -372,7 +372,7 @@ class MinePageDatasModel{
372 let url = HttpUrlUtils.getMineUserLevelDataUrl() 372 let url = HttpUrlUtils.getMineUserLevelDataUrl()
373 let headers: HashMap<string, string> = HttpUrlUtils.getCommonHeaders(); 373 let headers: HashMap<string, string> = HttpUrlUtils.getCommonHeaders();
374 // return WDHttp.get<ResponseDTO<MineUserLevelItem>>(url, headers) 374 // return WDHttp.get<ResponseDTO<MineUserLevelItem>>(url, headers)
375 - return HttpBizUtil.get<MineUserLevelItem>(url, headers) 375 + return HttpBizUtil.get<ResponseDTO<MineUserLevelItem>>(url, headers)
376 }; 376 };
377 377
378 async getMineUserLevelDataLocal(context: Context): Promise<MineUserLevelItem> { 378 async getMineUserLevelDataLocal(context: Context): Promise<MineUserLevelItem> {
@@ -411,7 +411,7 @@ class MinePageDatasModel{ @@ -411,7 +411,7 @@ class MinePageDatasModel{
411 let url = HttpUrlUtils.getMineUserDetailDataUrl() 411 let url = HttpUrlUtils.getMineUserDetailDataUrl()
412 let headers: HashMap<string, string> = HttpUrlUtils.getCommonHeaders(); 412 let headers: HashMap<string, string> = HttpUrlUtils.getCommonHeaders();
413 // return WDHttp.get<ResponseDTO<MineUserDetailItem>>(url, headers) 413 // return WDHttp.get<ResponseDTO<MineUserDetailItem>>(url, headers)
414 - return HttpBizUtil.get<MineUserDetailItem>(url, headers) 414 + return HttpBizUtil.get<ResponseDTO<MineUserDetailItem>>(url, headers)
415 }; 415 };
416 416
417 async getMineUserDetailDataLocal(context: Context): Promise<MineUserDetailItem> { 417 async getMineUserDetailDataLocal(context: Context): Promise<MineUserDetailItem> {
@@ -224,7 +224,7 @@ export class LoginModel { @@ -224,7 +224,7 @@ export class LoginModel {
224 let headers: HashMap<string, string> = HttpUrlUtils.getCommonHeaders(); 224 let headers: HashMap<string, string> = HttpUrlUtils.getCommonHeaders();
225 225
226 return new Promise<string>((success, fail) => { 226 return new Promise<string>((success, fail) => {
227 - HttpBizUtil.post<string>(HttpUrlUtils.getLogoutUrl(), bean, headers).then((data: ResponseDTO<string>)=>{ 227 + HttpBizUtil.post<ResponseDTO<string>>(HttpUrlUtils.getLogoutUrl(), bean, headers).then((data: ResponseDTO<string>)=>{
228 if (!data) { 228 if (!data) {
229 fail("数据为空") 229 fail("数据为空")
230 return 230 return