封装rcp请求
import { rcp } from '@kit.RemoteCommunicationKit'
class MyInterceptor implements rcp.Interceptor{
intercept(context: rcp.RequestContext, next: rcp.RequestHandler): Promise<rcp.Response> {
// context 表示请求的上下文
// next 表示响应
// const url = context.request.url.href;
// !存在的目的就是强制转换,默认我们的数据是存在
context.request.headers!['token'] = '123' // 为网络请求设置请求头
const promise = next.handle(context); // 获取服务器端的响应结果
// promise.then((resp) => {
// resp.statusCode;
// });
return promise;
}
}
export class HttpRequest {
static rcpSession() {
const session = rcp.createSession({
baseAddress: 'http://192.168.14.24:1337', // 网络请求基础地址
// 网络请求拦截器
interceptors: [new MyInterceptor()],
// 请求的配置信息
headers: {
// "Authorization": "Bearer YOUR_ACCESS_TOKEN",
"Content-Type": "application/json",
},
requestConfiguration: {
transfer: {
// 超时时间
timeout: {
connectMs: 5000, // 连接时长,默认是1分钟
transferMs: 5000, // 传输时长,默认是1分钟
}
}
}
})
return session
}
static get(url: string) {
return HttpRequest.rcpSession().get(url)
}
static post(url: string, data: Object) {
return HttpRequest.rcpSession().post(url, data)
}
static put(url: string, data: Object) {
return HttpRequest.rcpSession().put(url, data)
}
static del(url: string) {
return HttpRequest.rcpSession().delete(url)
}
}
使用post请求
@State obj:LoginInfo = {
userName: "liu",
password: "111111"
}
testLogin() {
HttpRequest.post("/api/v1/auth/login", this.obj).then(res=>{
console.log(JSON.stringify(res.toJSON()) )
})
}
onPageShow(): void {
// HttpRequest.rcpSession()
this.testLogin()
}