diff --git a/common/js/http.js b/common/js/http.js index 0ad0506..84f37f3 100644 --- a/common/js/http.js +++ b/common/js/http.js @@ -44,6 +44,15 @@ function _sleep(ms) { } function _makeRequest(url, method, data, header, dataType, responseType, timeout) { + const reqId = 'req_' + Date.now() + '_' + Math.floor(Math.random() * 10000); + const reqStart = Date.now(); + console.log('[HTTP][REQUEST]', reqId, method, url, JSON.stringify({ + data: data, + header: header, + dataType: dataType, + responseType: responseType, + timeout: timeout + })); return new Promise((resolve, reject) => { uni.request({ url: url, @@ -54,6 +63,7 @@ function _makeRequest(url, method, data, header, dataType, responseType, timeout responseType: responseType, timeout: timeout, success: (res) => { + console.log('[HTTP][RESPONSE]', reqId, method, url, 'statusCode=', res.statusCode, 'cost=', (Date.now() - reqStart) + 'ms', JSON.stringify(res.data)); if (res.statusCode && [200, 500].indexOf(res.statusCode) == -1) { reject({ errMsg: `request:fail statusCode=${res.statusCode}`, statusCode: res.statusCode }); return; @@ -73,6 +83,7 @@ function _makeRequest(url, method, data, header, dataType, responseType, timeout resolve(res.data); }, fail: (res) => { + console.error('[HTTP][FAIL]', reqId, method, url, 'cost=', (Date.now() - reqStart) + 'ms', JSON.stringify(res)); reject(res); } }); @@ -87,15 +98,20 @@ async function _requestWithRetry(params, url, method, data, header, dataType, re for (let attempt = 0; attempt <= maxRetries; attempt++) { try { + if (attempt > 0) { + console.log('[HTTP][RETRY]', method, url, 'attempt=', attempt, 'maxRetries=', maxRetries); + } const result = await _makeRequest(url, method, data, header, dataType, responseType, timeout); return result; } catch (err) { lastError = err; lastStatusCode = err && err.statusCode; + console.warn('[HTTP][RETRY-FAIL]', method, url, 'attempt=', attempt, 'errMsg=', err && err.errMsg, 'statusCode=', lastStatusCode); if (attempt >= maxRetries || !_shouldRetry(err.errMsg)) { break; } const delay = RETRY_DELAY_BASE * Math.pow(2, attempt); + console.log('[HTTP][RETRY-WAIT]', method, url, 'delay=', delay + 'ms'); await _sleep(delay); } } @@ -207,6 +223,7 @@ export default { } }, uploadBase64(params) { + console.log('[HTTP][REQUEST] uploadBase64', Config.baseUrl + '/api/upload/headimgBase64'); uni.request({ url: Config.baseUrl + '/api/upload/headimgBase64', method: 'POST', @@ -221,14 +238,17 @@ export default { dataType: 'json', responseType: 'text', success: res => { + console.log('[HTTP][RESPONSE] uploadBase64', 'statusCode=', res.statusCode, JSON.stringify(res.data)); typeof params.success == 'function' && params.success(res.data); }, fail: () => { + console.error('[HTTP][FAIL] uploadBase64', JSON.stringify(res)); typeof params.fail == 'function' && params.fail(res); } }); }, pullImage(params) { + console.log('[HTTP][REQUEST] pullImage', Config.baseUrl + '/api/upload/headimgPull', 'path=', params.path); uni.request({ url: Config.baseUrl + '/api/upload/headimgPull', method: 'POST', @@ -243,14 +263,17 @@ export default { dataType: 'json', responseType: 'text', success: res => { + console.log('[HTTP][RESPONSE] pullImage', 'statusCode=', res.statusCode, JSON.stringify(res.data)); typeof params.success == 'function' && params.success(res.data); }, fail: () => { + console.error('[HTTP][FAIL] pullImage', JSON.stringify(res)); typeof params.fail == 'function' && params.fail(res); } }); }, upload(params) { + console.log('[HTTP][REQUEST] upload', Config.baseUrl + params.url, 'name=', params.name || 'file'); uni.uploadFile({ url: Config.baseUrl + params.url, filePath: params.filePath, @@ -264,9 +287,11 @@ export default { 'content-type': 'application/x-www-form-urlencoded;application/json' }, success: (res) => { + console.log('[HTTP][RESPONSE] upload', Config.baseUrl + params.url, 'statusCode=', res.statusCode, res.data); typeof params.success == 'function' && params.success(JSON.parse(res.data)); }, fail: (res) => { + console.error('[HTTP][FAIL] upload', Config.baseUrl + params.url, JSON.stringify(res)); typeof params.fail == 'function' && params.fail(res); } });