Android okhttp添加数据加密拦截器

一、需求

既然要对请求体加密,那肯定要知道请求体在哪里,然后才能加密,其实都一样不论是加密url里面的query内容还是加密body体里面的都一样,只要拿到了对应的数据我们想怎么做怎么,有的接口比较奇葩,他需要根据请求体的内容进行签名认证。不论如何我们拿到了请求体当然想怎么样就怎么样

二、代码实现
public class TestInterceptor implements Interceptor {private String newHost = "127.0.0.1";@Overridepublic Response intercept(Chain chain) throws IOException {Request request = chain.request();HttpUrl url = request.url();//http://127.0.0.1/test/upload/img?userName=xiaoming&userPassword=12345String scheme = url.scheme();//  http httpsString host = url.host();//   127.0.0.1String path = url.encodedPath();//  /test/upload/imgString query = url.encodedQuery();//  userName=xiaoming&userPassword=12345StringBuffer sb = new StringBuffer();sb.append(scheme).append(newHost).append(path).append("?");Set<String> queryList = url.queryParameterNames();Iterator<String> iterator = queryList.iterator();for (int i = 0; i < queryList.size(); i++) {String queryName = iterator.next();sb.append(queryName).append("=");String queryKey = url.queryParameter(queryName);//对query的key进行加密sb.append(CommonUtils.getMD5(queryKey));if (iterator.hasNext()) {sb.append("&"); }}String newUrl = sb.toString();Request.Builder builder = request.newBuilder().url(newUrl);return chain.proceed(builder.build());}
}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部