公司用的这套,保存一下供以后方便扒
目录结构
api.js
// 引入请求js
import config from '@/utils/http/http.js';
// 登录接口统一管理
const $http = {
//获取用户,
getUserInfo:function(data,methods) {
return config.httpRequest({url: '/mobileController/getUserInfo',data,methods})
}
}
export default $http;
http.js
const baseUrl = "http://127.0.0.1:8080/api"; // 测试环境
const $http = {
/*
url 路径地址
data 传递的数据
methods 请求类型 POST
dataType 数据格式转成
token token数据
headers headers头部数据
*/
httpRequest: function({
url,
data,
methods,
dataType
}) {
return new Promise(function(resolve, reject) {
uni.request({
url: baseUrl + url,
data: data || {},
method: methods || "GET",
dataType: dataType || "JSON",
headers: {
'Content-Type':'application/json; charset=UTF-8',
},
success: function(res) {
// 判断接口是否正常
if (res.statusCode === 200) {
// 返回成功后对数据进行处理,这儿返回状态是字符串(根据后端返回为准) 转换
resolve(JSON.parse(res.data))
}else{
uni.hideLoading();
uni.showToast({
title: '网络繁忙!',
icon: 'none',
duration: 2000
});
}
},
fail: function(err) {
uni.hideLoading();
reject(err);
}
})
})
}
}
export default $http;
页面js 引入
import api from '@/utils/api/api.js';
页面方法 调用
async login(openid) {
let data = await api.getUserInfo({
openid: openid
}, 'post')
if (data.user != null) {
getApp().globalData.user = data.user
} else {
getApp().globalData.user.wxOpenId = openid
}
}
后台
controller
@RequestMapping("/getUserInfo")
@ResponseBody
public String getUserInfo(@RequestBody String json) throws UnsupportedEncodingException {
return mobileServe.getUserInfo(json);
}
service
String getUserInfo(String json);
serviceImpl
@Override
public String getUserInfo(String json) {
JSONObject jsonObject = JSON.parseObject(json);
Map<String, Object> map = new HashMap<>();
try {
String openid = jsonObject.getString("openid");
User user = mobileMapper.getUserInfo(openid);
map.put("user", user);
map.put("status", "success");
map.put("msg", "检索成功");
} catch (Exception e) {
map.put("status", "error");
map.put("msg", e.toString());
e.printStackTrace();
}
return JSON.toJSONString(map);
}