应用拦截器
先继承Interceptor chain是指责任链
public class AppInterceptor implements Interceptor {
/**
* @param chain 责任链
* @return
* @throws IOException
*/
@Override
public Response intercept(Chain chain) throws IOException {
Request request = chain.request();//得到开发者创建的request对象
Response proceed = chain.proceed(request);//得到response
Log.d("yingyonglanjieqi", proceed.body().string());
return proceed;
}
}
日志拦截器
先使用okhttp网络日志拦截器:
compile ‘com.squareup.okhttp3:logging-interceptor:3.5.0’
如果okhttp的依赖版本比较低 就把版本号复制费interceptor的版本号
//创建日志拦截器
HttpLoggingInterceptor httpLoggingInterceptor = new HttpLoggingInterceptor();
httpLoggingInterceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
//给okhttp添加应用拦截器和日志拦截器
OkHttpClient okHttpClient = new OkHttpClient.Builder()
.addInterceptor(new AppInterceptor())//添加应用拦截器
.addInterceptor(httpLoggingInterceptor)//添加到应用拦截器里
.addNetworkInterceptor(httpLoggingInterceptor).build();//添加到网络拦截器里
post请求
body的四个
1.multipart/form-data 多表单,不止包含原生表单数据,也包含文件表单数据
2.x-www-form-urlencoded 原生表单,只上传文本表单,不能上传文件
3.raw ,上传常见数据类型,比如html,xml,json,js等等
4.binary 二进制文件,与多表单区别,没有原生表单数据,不是表单类