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请求的封装与过滤

原文地址:https://www.cnblogs.com/wangziqiang123/p/11657463.html

时间: 2024-10-04 03:04:40

http请求的封装与过滤的相关文章

使用NSURLConnection的网络请求与封装

访问网络的方式: 1.同步请求: 会阻塞主线程 2.异步请求: 无法取消 请求过程在多线程执行 基本流程: 1.构造NSURL实例. 2.生成NSURLRequest请求. 3.通过NSURLConnection发送请求. 4.通过NSURLRespond实例和NSError实例分析结果. 5.接受返回数据. 使用NSURLConnection发起异步请求: 第一种方法: - (void)setUrl:(NSURL *)url { //使用同异步请求网络 NSMutableURLRequest

javascript中Ajax请求的封装代码

/****************************ajax请求 start**************************************/ function ajaxClass(_url, _successCallback, _failureCallback, _urlParameters, _callbackParams, _async, _charset, _timeout, _frequency, _requestTimes, _frame) { /** * AJAX

NSURLSession的GET和POST请求的封装

简介:因为在iOS9.0之后,以前使用的NSURLConnection过期,苹果推荐使用NSURLSession来替换NSURLConnection完成网路请求相关操作. 之前已经在   http://www.linuxidc.com/Linux/2016-04/129797.htm 介绍如何使用NSURLSession来发送GET请求和POST请求. 这里会将其封装起来,方便以后可以通过一个方法实现所有过程. 基本思路: 1.创建一个继承自NSObject的自定义类,用来调用封装的POST和G

小程序api请求层封装(Loading全局配置)

前言 小程序开发,没有vue中的axios那么好使,请求层的封装需要自己来搞. 当然请求层的配置少不了loading,这里索性也就将loading做一个配置,避免以后重复造轮子 请求封装 小程序中有封装好的请求方法:wx.request(url,method,header,success,fail,complete);方法类似于原生的ajax, 这里我们大的方面分两种,一种普通请求,一种是文件上传 普通请求又分为get请求,post请求,post请求又分为JSON格式和BODY格式因此 我们需要

Drf04 / drf request请求对象封装、版本、认证、权限

目录 Drf04 / drf request请求对象封装.版本.认证.权限 回顾和补充 今日详细 1.请求的封装 2.版本 3.认证(面试) 4.权限 Drf04 / drf request请求对象封装.版本.认证.权限 回顾和补充 restful规范 1. 建议用https代替http 2. 在URL中体现api,添加api标识 https://www.cnblogs.com/xwgblog/p/11812244.html # 错误 https://www.cnblogs.com/api/xw

axios请求方法封装.

axios的使用上一般封装好对应的方法,ES6导出,直接调用,消息通知使用了ElementUI的Message组件. 这是一个封装了axios的Rest风格的工具类,包扩常用的POST,GET,PUT,DELETE, 在请求处理上使用统一的请求拦截处理.对返回的消息进行拦截预处理,有数据返回数据,没有返回消息. import axios from 'axios' import router from '../router' import { Message } from 'element-ui'

原生js和jquery发送ajax请求及封装

原生js                                   // ajax get 五部曲function ajax_get(url,data){ // 异步对象 var ajax=new XMLHttpRequest(); // 设置url和请求方式 // url方法 如果有数据要把数据拼接到url中?name=jack&age=20 if(data){ url+=?; url+=data; }else{}; ajax.open('get',url); // 发送请求 aja

网络请求的封装

网络封装的原因: 开发者为了开发方便,出现了大量的第三方的网络请求,我们除了在cocoapods中引入第三方的开源,同时还应该注意的一点是:如果第三方的网络请求不更新了(比如ASI),或者网络请求工具类在新版本出现了bug导致暂时无法使用,我们工程中存在大量的网络请求,可能会导致我们工程无法运行,甚至导致工程需要重新走通,为了这种解决这种突发状况的产生,我们需要在网络请求之前,进行简单的封装: 这里我们以AFNetworking为例 HttpTool.h中: #import <Foundatio

通用ajax请求方法封装,兼容主流浏览器

ajax简介 没有AJAX会怎么样?普通的ASP.Net每次执行服务端方法的时候都要刷新当前页面.如果没有AJAX,在youku看视频的过程中如果点击了"顶.踩".评论.评论翻页,页面就会刷新,视频就会被打断.开发一个看效果:用<video src="diaosi.mp4" autoplay controls></video>播放视频(只有支持html5的浏览器能播放),然后放一个"赞"按钮的功能(赞的数量存到数据库),看