diff --git a/CHANGELOG.md b/CHANGELOG.md index 719178e..845b8db 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ > - `RefreshView`参数不包含`onLoadMore`的时候,上划不应该提示`没有更多数据了` > - `RefreshView`添加一个`controller`,补充跳转到顶部,跳转到底部等方法,具体见文档`4.3`注释 > - `WindowHelper`添加一个获取屏幕宽高的方法 +> - `HttpHelper`上传文件逻辑完善 > # [v1.0.8] 2025.03.11 diff --git a/README.md b/README.md index ea3a8ed..6e04f29 100644 --- a/README.md +++ b/README.md @@ -358,19 +358,10 @@ struct MyView{ ### 3.1.get请求 ```tsx - HttpHelper.get() - .get>(url.url.startsWith('http') ? url.url : GlobalValue.getInstance().envUrl + url.url, + .get>(url, data ? JSON.stringify(data) : undefined, { - userId: GlobalValue.getInstance().userIds, - clientId: GlobalValue.getInstance().getClientIds(), - version: ConstantValue.VERSION, - deviceType: '01', - timeStamp: timeStamp + '', - sign: sign, - phoneModel: 'sign', - phoneVersion: 'sign', - phoneBrand: 'HarmonyOS' + version: ConstantValue.VERSION }, url.apiNo) .then((res: HttpResult) => { if (res.status === '0') { @@ -390,18 +381,10 @@ HttpHelper.get() ```tsx HttpHelper.get() - .post>(url.url.startsWith('http') ? url.url : GlobalValue.getInstance().envUrl + url.url, + .post>(url, data ? JSON.stringify(data) : undefined, { - userId: GlobalValue.getInstance().userIds, - clientId: GlobalValue.getInstance().getClientIds(), - version: ConstantValue.VERSION, - deviceType: '01', - timeStamp: timeStamp + '', - sign: sign, - phoneModel: 'sign', - phoneVersion: 'sign', - phoneBrand: 'HarmonyOS' -}, url.apiNo) + version: ConstantValue.VERSION +}, apiNo) .then((res: HttpResult) => { if (res.status === '0') { resolve(res.data as T) @@ -415,6 +398,57 @@ HttpHelper.get() }) ``` +### 3.3.postForm + +```tsx +HttpHelper.get() + .postForm>({ + url: '', + data: data, + headers: { + version: ConstantValue.VERSION, + deviceId: GlobalValue.getInstance().deviceId, + } + }, apiNo, showLog) + .then((res: HttpResult) => { + if (res.status === '0' || res.code === 200) { + resolve(res.data as T) + } else { + reject(new YWXError(res.status ?? res.code?.toString() ?? '-1', res.message)) + } + }) + .catch((error: Error) => { + reject(new YWXError(error.name ?? '-1', error.message)) + }) +``` + +### 3.4.upload + +```tsx +HttpHelper.get() + .upload>({ + url: url, + data: data, + onProgress, + headers: { + 'X-Access-Token': HosGlobalValue.getInstance().token, + } + }, apiNo, showLog) + .then((res: HttpResult) => { + if (res.code === 200) { + resolve(res.data as T) + } else if (res.code === 40003) { + AccountManager.get().logout() + ToolsHelper.showMessage('登录已过期,请重新登录') + } else { + reject(new YWXError(res.code?.toString() ?? '-1', res.message)) + } + }) + .catch((error: Error) => { + reject(new YWXError(error.name ?? '-1', error.message)) + }) +``` + ## 4.[自定义view](./src/main/ets/view) ### 4.1.[LoadingView](./src/main/ets/view/LoadingView.ets) diff --git a/src/main/ets/http/HttpHelper.ets b/src/main/ets/http/HttpHelper.ets index 623e310..85b9f20 100644 --- a/src/main/ets/http/HttpHelper.ets +++ b/src/main/ets/http/HttpHelper.ets @@ -1,6 +1,6 @@ import { ArrayList, HashMap } from '@kit.ArkTS'; import http from '@ohos.net.http'; -import { LogHelper, ToolsHelper } from '../../../../Index'; +import { LogHelper } from '../../../../Index'; import { SZYXLocalStorageHelper } from '../utils/SZYXLocalStorageHelper'; import { SZYXLocalStorageKeys } from '../utils/SZYXLocalStorageKeys'; import { HttpHelperX, HttpParamsForm, HttpParamsGet, HttpParamsPost, HttpParamsUpload } from './HttpHelperX'; @@ -341,7 +341,10 @@ export class HttpHelper { LogHelper.debug(`postJson:${apiNo}\n`, JSON.stringify(params)) } httpRequest.on("dataSendProgress", (data: http.DataSendProgressInfo) => { - ToolsHelper.log(`${apiNo}:\n${JSON.stringify(data)}`) + if (showLog) { + LogHelper.debug(`${apiNo}:\n${JSON.stringify(data)}`) + } + params.onProgress && params.onProgress(data.sendSize, data.totalSize) }); httpRequest.request(HttpHelperX.getUrl(params.url, params.query), { method: http.RequestMethod.POST, diff --git a/src/main/ets/http/HttpHelperX.ts b/src/main/ets/http/HttpHelperX.ts index 5ac416f..e3e354d 100644 --- a/src/main/ets/http/HttpHelperX.ts +++ b/src/main/ets/http/HttpHelperX.ts @@ -13,11 +13,13 @@ export interface HttpParamsPost { query?: Record | Object headers?: Record } + export interface HttpParamsUpload { url: string data: http.MultiFormData[] query?: Record | Object headers?: Record + onProgress?: (progress: number, total: number) => void } export interface HttpParamsForm {