直接上代码
我也是一个初学者. 相互学习.. 有问题留言
谢特 只能上传图片
// requestAPI.js
const stream = weex.requireModule('stream');
const bmAxios = weex.requireModule('bmAxios')
const modal = weex.requireModule('bmModal')
/**
* 接口说明 get_request
* url:请求地址
* method:'GET'
*/
export const get_request = async (url) => {
return new Promise((resolve, reject) => {
bmAxios.fetch({
method: 'GET',
url: url,
}, (resData) => {
if (resData.status == 200) {
resolve(resData.data);
} else if (resData.errorMsg && resData.errorMsg != '') {
reject(resData.errorMsg)
} else {
reject(resData)
}
});
});
};
/**
* 接口说明
* url:请求地址
* method:'POST'
*/
export const post_request = (url, params) => {
return new Promise((resolve, reject) => {
bmAxios.fetch({
method: 'POST',
url: url,
type: 'json',
header: {
// 'Content-Type': 'application/json;charset=UTF-8'
},
data: params,
}, function (resData) {
if (resData.status == 200) {
resolve(resData.data);
} else if (resData.errorMsg && resData.errorMsg != '') {
reject(resData.errorMsg)
} else {
reject(resData)
}
});
});
};
/**
* 接口说明
* url:请求地址
* method:'PUT'
*/
export const put_request = (url, params) => {
return new Promise((resolve, reject) => {
stream.fetch({
method: 'PUT',
url: url,
type: 'json',
headers: {
'Content-Type': 'application/json;charset=UTF-8'
},
body: params,
}, function (ret) {
if (ret.ok) { //请求成功
resolve(ret.data);
} else { // 请求失败
let error = url + ' 接口请求失败: '
if (ret.status == -1) {
error = error + ret.data;
}
if (ret.data) {
if (ret.data.message) {
error = error + ret.data.message;
}
}
reject(error);
}
}, function (response) {
console.log('get in progress:' + response.length);
});
});
};
/** dict 转 string
* return page=1&count=2
*/
export function paramsToString(params) {
var paramString = '';
for (var key in params) {
var string = '';
if (params[key]) {
string = key + '=' + params[key] + '&';
}
paramString = paramString + string
}
paramString = paramString.substr(0, paramString.length - 1);
return paramString;
}
function toParams(obj) {
var param = ""
for (const name in obj) {
if (typeof obj[name] != 'function') {
param += "&" + name + "=" + encodeURI(obj[name])
}
}
return param.substring(1)
};
// request.js
export let baseUrl = 'https://kitsu.io/api'; // 不带参数的接口
import {get_request,post_request,paramsToString} from '../requAIP.js'; // 这里是 requestAPI.js 的文件路径. 根据自己的放的位置设置
// 现在我们写一个 方法 get
/*
* 获取首页数据
*/
export const GET_HOMEDATA = (params) = >{
let homeAPI = baseUrl +'/edge/anime';
var paramString = paramsToString(params); // 转Stirng
homeAPI = homeAPI + '?' + paramString; // 拼接成完整的 URL
return get_request(homeAPI);
}
/*
* 获取其他数据
* 这里是做演示 接口是假的
*/
export const GET_HOMEDATA = (params) = >{
let url = baseUrl +'/edge/other';
return get_request(url,params);
}
/*
* 修改密码
* 这里是做演示 接口是假的
*/
export const POST_CHANGEPASSWORD = (params) = >{
let url = baseUrl +'/edge/changepassword';
return post_request(url,params);
}
// 为什么要 要传入一个 params
// 如果参数是变动的 你就需要在调用方法的地方 传入params
// 如果是个不需要变动的 url 你可以写死
// 总之自己去试试吧
// 不要用 put 方法 iOS 和 安卓 不小的那个不支持
// 不要问我为什么这么写 iOS 和 安卓 有坑.. 有时候你用的 请求方法 安卓可以 iOS 不可以 iOS 可以 安卓不可
/*
*
* 这里是做演示 接口是假的
*/
export const GET_HOMEDATATEST = () = >{
let url = baseUrl +'/edge/anime?filter%5Bstatus%5D=current&sort=-userCount&page%5Blimit%5D=20';
return get_request(url);
}
// 你可以根据自己 url 的的类型 写一个
// 调用