第一次对请求体进行加密操作,记录一下大坑。废话不多说看代码
我用的novate网络框架
转载地址---https://blog.csdn.net/u013651026/article/details/79294447
总体请求方式如下----
Novate novate = new Novate.Builder(this)
.addParameters(parameters)
.connectTimeout(8)
.baseUrl("you api url") //url
.addHeader(headers) //请求头
builder.addInterceptor(myInterceptor); // 自定义Interceptor拦截器
.addLog(true)
.build();
headers解释
Map<String, String> headers = new HashMap<>(); headers.put("token", token); headers.put("version", "1111"); headers.put("source", "1");
// 自定义Interceptor
/** * 拦截器获取请求体 * get请求 */
Interceptor myInterceptor = new Interceptor() {
@Override
public Response intercept(Chain chain) throws IOException {
Request request = chain.request();--------debug打印数据
HttpUrl requestBody = request.url();-----获取url完整数据
//获取请求体----请求接口的时候传递的参数----字符串
String values = requestBody.query();
//打印日志
Logger.e("requestBody===" + values);
if (!TextUtils.isEmpty(values)) {
request = request.newBuilder()
//添加到header里面
.addHeader("common",values)------可在此加密
.build();
} else {
ToastUtils.showToast(BaseApplication.getApplication(), "系统异常");
}
//在这里获取到request后就可以做任何事情了
Response response = chain.proceed(request);
return response;
}
};
Request request = chain.request();--------debug打印数据
/** * 拦截器获取请求体 * post请求 */ Interceptor postInterceptor = new Interceptor() { @Override public Response intercept(Chain chain) throws IOException { Request request = chain.request(); String paramsStr = null; //获取请求体body RequestBody requestBody = request.body(); Logger.e("requestBody===" + requestBody); Buffer buffer = new Buffer(); if (requestBody != null) { //作为流输出 requestBody.writeTo(buffer); //定义编码方式 Charset charset = Charset.forName("UTF-8"); MediaType contentType = requestBody.contentType(); if (contentType != null) { charset = contentType.charset(charset); } //获取请求体----字符串的方式 paramsStr = buffer.readString(charset); } Logger.e("comment===" + paramsStr); request = request.newBuilder() .addHeader("common", paramsStr)---------可在此加密 .build(); //在这里获取到request后就可以做任何事情了 Response response = chain.proceed(request); return response; } };