ts接口封装代码:
request.ts
TypeScript
import prompt from '@system.prompt'
import http from '@ohos.net.http';
export default (methods: string, uri: string, params: object, success: Function) => {
const httpRequest = http.createHttp();
const base_url = 'http://192.168.1.8:8080/zh-admin'
httpRequest.request(
base_url + uri,
{
// @ts-ignore
method: methods, // 可选,默认为"GET"
// 开发者根据自身业务需要添加header字段
header: {
'Content-Type': 'application/json',
"Authorization": 'Bearer ' + AppStorage.Get('token') // 请求头携带token
},
// 当使用POST请求时此字段用于传递内容
extraData: params
}, (err, data) => {
if (!err) {
// 打印接口返回结果
console.info('result:' + data.result);
// @ts-ignore
var result = JSON.parse(data.result);
if (result.code == 200) {
success(result);
} else {
// 如果返回错误则提示错误
if (result.msg) {
prompt.showToast({
message: result.msg
});
}
}
} else {
console.error('error:' + JSON.stringify(err));
}
});
}
页面调用接口代码:
Login.ets(登录调用接口部分)
TypeScript
//引入方法
import Request from '../utils/request'
Button("立即登录").width('100%').backgroundColor('#0070FF').margin({ top: 30 })
.enabled(isLoginButtonClickable(this.userName,this.password))
.onClick(()=>{
//检查是否已勾选同意条款协议
if(!this.isAgree){
prompt.showToast({
message: '请先阅读协议!'
});
return
}
//写入请求方式、路径参数、请求参数
Request("POST","/login",{
username: this.userName,
password: this.password
},(res)=>{
if(res.code==200){
//将返回的token值存入本地
AppStorage.SetOrCreate('token', res.token)
prompt.showToast({
message: '登录成功!'
});
//跳转至首页
router.pushUrl({
url: 'pages/Index'
});
}
});
})