Get方式
根据JSON内容设置接口
Interface Data{ data1:CommonType data2:sonType } class DataModule implements Data{ data1:CommonType data2:specialType constructor(info:Data){ this.data1 = info.data1 this.data2 = info.data2 } } class specialType{ constructor(){
} }
@State dataList:DataModule[] = [ new DataModule({data1:xx,data2:yy}), new DataModule({data1:xx,data2:yy}), ]
|
获取
import { http } from '@kit.NetworkKit' let url = 'xxx'
let httpRequest = http.createHttp()
httpRequest.request(url,{ method:http.RequestMethod.GET, header:{ cookie:'', agent:'' } }).then((info)=>{ this.result = JSON.parse(info.result.toString()) })
|
使用
申请网络权限
src/main/resources/module.json5中的module添加"requestPermissions": [{“name”: “ohos.permission.INTERNET”
}],
模板
import { http } from '@kit.NetworkKit' import { promptAction } from '@kit.ArkUI' import { BaseRespData } from '../models/BaseRespData'
export async function requestHttp<T>(url:string,method:http.RequestMethod=http.RequestMethod.GET,data?:object):Promise<T>{ let httpRequest = http.createHttp() let options:http.HttpRequestOptions={ header:{}, method:method, extraData:data, readTimeout:10*1000, connectTimeout:10*1000 } let httpResult = await httpRequest.request(url,options) console.log('???:'+httpResult.result.toString()) try { if (httpResult.responseCode === 401) { promptAction.showToast({message:"Token已过期"}) return Promise.reject((new Error(JSON.stringify(httpResult)))) } else if(httpResult.responseCode === 404){ promptAction.showToast(({message:"请求地址错误"})) return Promise.reject(new Error(JSON.stringify(httpResult))) }else { let result = JSON.parse(httpResult.result.toString()) as BaseRespData<T> if(result.code === 200){ return result.data } else{ promptAction.showToast({message:"业务执行失败"+result.msg}) return Promise.reject(new Error("业务执行失败")+result.msg) } } }catch (err) { console.error("网络请求错误"+JSON.stringify(err)) return Promise.reject(new Error("网络请求错误"+JSON.stringify(err))) } finally { httpRequest.destroy() } }
|