最近做的净水器项目,前台需要对发送的请求进行统一的封装,后台需要对请求进行统一的验证。本文记录了前台进行的http请求的封装及后台进行的http请求的过滤。前台:小程序,后
最近做的净水器项目,前台需要对发送的请求进行统一的封装,后台需要对请求进行统一的验证。本文记录了前台进行的http请求的封装及后台进行的http请求的过滤。前台:小程序,后台:SpringMvc.
小程序对http请求进行封装
在微信小程序wx.request官网 中的http请求是这样的:
1
2
3
4
5
6
7
8
9
10
11
12
13
wx
.request({
url:
'test.php',
data: {
x:
'' ,
y:
''
},
header: {
'content-type':
'application/json'
},
success: function(res) {
console.log(res.data)
}
})
由于请求的地址及参数是改变的,所以封装后的请求至少需要地址、请求参数。封装后代码是这样的
1
2
3
4
5
6
7
8
9
10
//发送http请求
var http =
require(
"../../utils/httpUtil.js");
//引入封装http的文件
var params = {
id:
app.number
};
var api =
"WaterPurifier/";
http.GET(api, params,
function(res){
console.log(res.data);
});
由以上代码可知,封装的http请求是在util文件夹中建立httpUtil.js文件,可以根据自己的实际需求,对参数作统一的处理,比如统一加密之类的,也可以直接对get、post方法的header信息作统一处理。总之,对http请求封装之后,不仅实现了我们的业务需求,而且也使代码更简洁了。
参考文献:微信小程序中对网络请求的封装
SpringMvc使用zuul过滤
在SpringMvc中,使用zuul可以对请求进行过滤,使用请参考官方文档
由上图可知,前台请求的地址实际上是zuul过滤器的地址,然后再由zuul过滤器进行转发到后台的逻辑层。在项目上线后,我们可以吧zuul过滤器放在一个服务器中,把后台的逻辑层代码放在另外一个服务器中,从而减轻了服务器的负担。
1
2
3
//获取请求
RequestContext ctx = RequestContext.getCurrentContext();
HttpServletRequest request = ctx.getRequest();
- 我们可以根据ctx对象来设置请求的状态码、请求的头信息、拦截请求等一系列操作。查找的途径是直接看RequestContext包中的方法。
- 我们可以根据request对象来获取请求的参数。我们可以直接浏览HttpServletRequest接口中的方法。
总结
最开始对前台的请求进行加密,后台的请求进行解密时,感觉也不麻烦。但是老师让我对请求进行封装,内心是抗拒的,当时可能感觉封装请求是个麻烦的过程。但是对前台的请求进行封装后 ,发现确实方便了很多。所以在以后的项目中,如果需要对某一类东西做统一的处理,就要封装,不仅规范,而且方便。
原文:大专栏 http请求的封装与过滤