// HTTP请求配置 const API_BASE_URL = 'https://api.likeichat.com' // 默认公共请求头配置 let COMMON_HEADERS = { 'authorization': 'Bearer F77126B08E13987C3AD88B6015C5B777.djIlM0ExOTU0MDU5NzkzOTYzMzkzMDI1JTNBTElLRUklM0ExNzU3NzYzODU5NzE1JTNBMTc1NTE3MTg1OTcxNQ==', 'req-app-intel': 'version=1.0.0;build=1;model=SM-G9550;sysVersion=9;channel=Google', 'req-client': 'Android', 'req-imei': '8fa54d728ab449e04f9292329ed44bda', 'req-lang': 'id-ID', 'req-sys-origin': 'origin=LIKEI;originChild=LIKEI', 'req-version': 'V2', 'req-zone': 'Asia/Shanghai', } /** * 更新公共请求头 * @param {object} headers - 要更新的请求头 */ export function updateCommonHeaders(headers) { COMMON_HEADERS = { ...COMMON_HEADERS, ...headers } console.log('🔄 Updated common headers:', COMMON_HEADERS) } /** * 从APP头部信息设置HTTP请求头 * @param {object} headerInfo - APP传递的头部信息 */ export function setHeadersFromApp(headerInfo) { const updatedHeaders = {} // 设置Authorization if (headerInfo.authorization) { updatedHeaders.authorization = headerInfo.authorization } // 设置语言 if (headerInfo.reqLang) { updatedHeaders['req-lang'] = headerInfo.reqLang } // 设置APP信息 if (headerInfo.appVersion || headerInfo.buildVersion || headerInfo.appChannel) { const appIntelParts = [] if (headerInfo.appVersion) appIntelParts.push(`version=${headerInfo.appVersion}`) if (headerInfo.buildVersion) appIntelParts.push(`build=${headerInfo.buildVersion}`) if (headerInfo.appChannel) appIntelParts.push(`channel=${headerInfo.appChannel}`) if (appIntelParts.length > 0) { updatedHeaders['req-app-intel'] = appIntelParts.join(';') } } // 设置设备信息 if (headerInfo.reqImei) { updatedHeaders['req-imei'] = headerInfo.reqImei } // 设置系统来源 if (headerInfo.sysOrigin) { const sysOriginParts = [`origin=${headerInfo.sysOrigin}`] if (headerInfo.sysOriginChild) { sysOriginParts.push(`child=${headerInfo.sysOriginChild}`) } updatedHeaders['req-sys-origin'] = sysOriginParts.join(';') } updateCommonHeaders(updatedHeaders) } /** * 通用HTTP请求函数 * @param {string} url - 请求URL * @param {object} options - 请求选项 * @returns {Promise} - 返回Promise对象 */ export async function request(url, options = {}) { const { method = 'GET', data = null, headers = {}, ...otherOptions } = options const fullUrl = url.startsWith('http') ? url : `${API_BASE_URL}${url}` const config = { method, headers: { 'Content-Type': 'application/json', ...COMMON_HEADERS, ...headers }, ...otherOptions } // 如果是POST、PUT等方法且有数据,添加body if (data && ['POST', 'PUT', 'PATCH'].includes(method.toUpperCase())) { config.body = JSON.stringify(data) } try { console.log('🚀 API Request:', fullUrl, config) const response = await fetch(fullUrl, config) if (!response.ok) { throw new Error(`HTTP Error: ${response.status} ${response.statusText}`) } const result = await response.json() console.log('✅ API Response:', result) // 检查业务状态 if (result.status === false) { throw new Error(result.message || `API Error: ${result.errorCode}`) } return result } catch (error) { console.error('❌ API Error:', error) throw error } } /** * GET请求 * @param {string} url - 请求URL * @param {object} options - 请求选项 * @returns {Promise} */ export function get(url, options = {}) { return request(url, { ...options, method: 'GET' }) } /** * POST请求 * @param {string} url - 请求URL * @param {object} data - 请求数据 * @param {object} options - 请求选项 * @returns {Promise} */ export function post(url, data, options = {}) { return request(url, { ...options, method: 'POST', data }) } /** * PUT请求 * @param {string} url - 请求URL * @param {object} data - 请求数据 * @param {object} options - 请求选项 * @returns {Promise} */ export function put(url, data, options = {}) { return request(url, { ...options, method: 'PUT', data }) } /** * DELETE请求 * @param {string} url - 请求URL * @param {object} options - 请求选项 * @returns {Promise} */ export function del(url, options = {}) { return request(url, { ...options, method: 'DELETE' }) }