ohos请求ajax封装

52 阅读1分钟

新建config文件

主要应用于配置动态参数

config.js文件

var isProduce = true; //线上版本改为 true  测试环境为 false

export default {
    /* 服务器访问地址 */
    base_url:isProduce ? '' : '',
    /* 连接超时时间 60s */
    connectTimeout : 60000,
    /* 读取超时时间  60s */
    readTimeout:60000,
    /* 加载弹框时间 */
    loadingTimeOut:60000,

}

封装ajax数据请求


ajax.js文件
/**
 * 封装ajax数据请求*/
import config from  '../config';
import http from '@ohos.net.http';

let httpRequest = http.createHttp();

function request(params){
    console.log('-------后台接口-----', JSON.stringify(params.url));
    console.log('-------传递参数-----',JSON.stringify(params.data));
    return new Promise(function(resolve, reject){
    httpRequest.request(
        config.base_url+params.url,
        {
         method:params.method,
            header: {
                'Content-Type': 'application/json'
            },
            extraData:params.data,
            connectTimeout:config.connectTimeout,
            readTimeout:config.readTimeout
        },(err,data)=>{
        console.info('data:' + JSON.stringify(data));
            if(!err){
                console.info('Result:' + data.result);
                console.info('code:' + data.responseCode);
                resolve(JSON.parse(data.result));
            }else{
                console.info('error:' + JSON.stringify(err));
                reject(err);
                httpRequest.destroy();
            }
        }
    )
    })
}


/**
 * POST请求方法
 * config传递参数
* */
export function POST(config){
    return request({
        ...config,
        method:http.RequestMethod.POST
    })
}

/**
 * GET请求方法
 * config传递参数
* */
export function GET(config){
    return request({
        ...config,
        method:http.RequestMethod.GET
    })
}

/**
 * PUT请求方法
 * config传递参数
* */
export function  PUT(config){
    return request({
        ...config,
        method:http.RequestMethod.PUT
    })
}

如需要其他的请求方式可自己添加

新建接口api文件

/* 根据后台接口选择传参方式 */
import { POST } from '../plugins/ajax'

/**
 * 接口
 * data 请求参数
 * */
export function getBuild(data){
    console.log('---data---',JSON.stringify(data))
    return POST({
        url:'/shareDevice/tip/common/tip/getTipByPosition',
        data:data,
    })
}

使用方式

在具体页面引入接口文件

import { getBuild } from '../../api/login';



export default {
    data: {
        "title": "",
    },
    onInit() {
       
        let data={
            tipPosition:"laundry_control"
        }
        //调用接口传参具体使用时机根据相关项目灵活使用
        getBuild(data).then(res=>{
            console.log('---res---',JSON.stringify(res))
            console.log('---code---',res.code)
            console.log('---data---' ,JSON.stringify(res.data))
            if(res.code=="SUCCESS"){
                this.deviceList=res.data;
                console.log(JSON.stringify(this.deviceList))
            }else{

            }

        })
    }
}