android 拦截器
16lz
2021-01-26
public class MyApp extends Application{ private static OkHttpClient okHttpClient; @Override public void onCreate() { super.onCreate(); ImageLoaderConfiguration imageLoaderConfiguration=new ImageLoaderConfiguration.Builder(this).build(); ImageLoader.getInstance().init(imageLoaderConfiguration); okHttpClient = new OkHttpClient.Builder() .readTimeout(15, TimeUnit.SECONDS) .writeTimeout(15, TimeUnit.SECONDS) .connectTimeout(15, TimeUnit.SECONDS) .addInterceptor(new MyInterceptor()) .build(); } public static OkHttpClient getOkHttpClient(){ return okHttpClient; } class MyInterceptor implements Interceptor { @Override public Response intercept(Chain chain) throws IOException { Request request = chain.request(); if("POST".equalsIgnoreCase(request.method())){ //拿到旧的formbody RequestBody oldbody = request.body(); if(oldbody instanceof FormBody){ //构造一个新的FormBody FormBody.Builder builder=new FormBody.Builder(); //新的FormBody去添加参数 builder.add("source","android"); FormBody old= (FormBody) oldbody; for (int i=0;i;i++){ builder.add(old.encodedName(i),old.encodedValue(i)); } FormBody newbody=builder.build(); request=request.newBuilder() .url(request.url()) .post(newbody) .build(); } } Response response=chain.proceed(request); return response; } }}
更多相关文章
- BLE 扫描及连接 android程序开发(一)
- android待机添加电量小部件,点击位置信息图标,模式切换需要改为四
- Android设置Toast长时间显示,及AlertDialog的使用
- Android(安卓)studio--Android开发添加外来字体库
- APICloud SuperWebView融合Android原生平台
- Android(安卓)Annotations框架 配置及使用(Windows 7 + Android(
- Android添加自定义公共so库
- android javaScript数据传递
- android分享图片到微信,无需申请APP_ID