Get方式

根据JSON内容设置接口

//如果是数组,则用data:Data[] = []
//如果是具体类型,则用dataModule:DataModule = new DataModule
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'
//创建http
let httpRequest = http.createHttp()
//请求
//含method,header
httpRequest.request(url,{
method:http.RequestMethod.GET,
header:{
cookie:'',
agent:''
}
}).then((info)=>{
this.result = JSON.parse(info.result.toString())
})
//Json.stringify()

使用

this.data.xxx?.yyy

申请网络权限

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()
}
}