【HarmonyOS Next】多线程网络请求简单封装

Copy
import http from '@ohos.net.http'; import { taskpool } from '@kit.ArkTS'; export class Request{ static async get(url:string, header?: Object, expectDataType: http.HttpDataType = http.HttpDataType.OBJECT ): Promise<Object>{ return await taskpool.execute(baseRequest, url, http.RequestMethod.GET, header,null, expectDataType); } static async post(url:string, header?: Object,extraData?: string | Object | ArrayBuffer, expectDataType: http.HttpDataType = http.HttpDataType.OBJECT): Promise<Object>{ return await taskpool.execute(baseRequest, url, http.RequestMethod.POST, header, extraData, expectDataType); } } @Concurrent async function baseRequest(url:string, method:http.RequestMethod, header?: Object, extraData?: string | Object | ArrayBuffer, expectDataType?: http.HttpDataType, connectTimeout?: number,multiFormDataList?: Array<http.MultiFormData>): Promise<http.HttpResponse>{ console.info(`【http】baseRequest method:${method.toString()} , url:${url}, header:${JSON.stringify(header)}`); let httpRequest = http.createHttp(); let res = await httpRequest.request( // 填写HTTP请求的URL地址,可以带参数也可以不带参数。URL地址需要开发者自定义。请求的参数可以在extraData中指定 url, { method: method, // 可选,默认为http.RequestMethod.GET header: header, // 开发者根据自身业务需要添加header字段 extraData: extraData, // 当使用POST请求时此字段用于传递内容 expectDataType: expectDataType, // 可选,指定返回数据的类型 usingCache: false, // 可选,默认为true priority: 1, // 可选,默认为1 connectTimeout: connectTimeout, // 可选,默认为60000ms readTimeout: 30000, // 可选,默认为60000ms multiFormDataList:multiFormDataList }); httpRequest.destroy(); console.info(`【http】baseRequest response:${res.responseCode} , url:${url}, data:${JSON.stringify(res.result)}`); return res; }
posted @   七夜i  阅读(513)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
历史上的今天:
2021-05-08 服务器端渲染(SSR)
点击右上角即可分享
微信分享提示