Android Retrofit2&OkHttp3添加统一的请求头Header
来源:互联网 发布:ug11.0编程新功能 编辑:程序博客网 时间:2024/05/20 18:04
在使用Retrofit时,有时候需要设置Set-Cookie等请求头,如果每一个url都需要,那么直接来个拦截器就好了.
让所有网络请求都附上你的 token:
Interceptor mTokenInterceptor = new Interceptor() { @Override public Response intercept(Chain chain) throws IOException { Request originalRequest = chain.request(); if (Your.sToken == null || alreadyHasAuthorizationHeader(originalRequest)) { return chain.proceed(originalRequest); } Request authorised = originalRequest.newBuilder() .header("Authorization", Your.sToken) .build(); return chain.proceed(authorised); }};
完整用法:
public class HttpUtils { private String token = null; private static HttpUtils self = new HttpUtils(); private HttpUtils() { } public static HttpUtils getInstance() { return self; } public <T> T createRequest(Class<? extends T> t) { Gson gson = new GsonBuilder() .setDateFormat("yyyy-MM-dd hh:mm:ss") .create(); Retrofit retrofit = new Retrofit.Builder() .baseUrl(BaseConstant.BASE_REQUEST_URL) .client(genericClient()) .addConverterFactory(ScalarsConverterFactory.create()) .addConverterFactory(GsonConverterFactory.create(gson)) .addCallAdapterFactory(RxJavaCallAdapterFactory.create()) .build(); return retrofit.create(t); } //统一拦截器 private OkHttpClient genericClient() { UserModel user = (UserModel) ACache.getAsObject("user"); if (user == null) { token = ""; } else { token = user.getToken(); } return new OkHttpClient.Builder() .addInterceptor(new Interceptor() { @Override public Response intercept(Chain chain) throws IOException { Request request = chain.request() .newBuilder() .addHeader("Authorization", token) .build(); return chain.proceed(request); } }) .build(); } public MultipartBody.Part createMultipartBody(String key, String fileName, File source) { RequestBody file = RequestBody.create(MediaType.parse(BaseConstant.APPLICATION_OCTET_STREAM), source); return MultipartBody.Part.createFormData(key, fileName, file); }}
阅读全文
0 0
- Android Retrofit2&OkHttp3添加统一的请求头Header
- Android Retrofit2&OkHttp3添加统一的请求头Header
- Android Retrofit2&OkHttp3添加统一的请求头Header
- Android Retrofit2&OkHttp3添加统一的请求头Header
- Android Retrofit2&OkHttp3添加统一的请求头Header
- Android 给Retrofit2和OkHttp3添加统一的请求头Header
- Android Retrofit2 动态(静态)添加请求头Header
- Retrofit2 + OkHttp3下统一设置Http请求的Headers
- Retrofit2 + OkHttp3下统一设置Http请求的Headers
- 关于Retrofit2+Okhttp3实现统一添加请求参数和重定向
- Retrofit2.0的使用之添加请求头
- Retrofit2.0添加Header的方法总结
- android RxJava+Retrofit2.0 OkHttp添加日志拦截器和设置请求头
- curl get请求添加header头信息
- Retrofit2.0请求添加头信息,以及解析成DAO
- Retrofit2 封装统一请求参数
- android 积累okhttp3与retrofit2常见的使用方法
- Android Retrofit2+okhttp3详细配置,解决URL乱码的问题。
- 关于调用本机的百度、高德地图
- JAVA使用FTPClient类读写FTP
- Spring使用注解的方式配置bean的属性-bean之间的引用关系
- Fixing the Java Memory Model, Part 2
- 深入理解Node.js垃圾回收与内存管理
- Android Retrofit2&OkHttp3添加统一的请求头Header
- OTT网络电视直播APP运营平台-如何保证视频的流畅性
- oracle的block change tracking功能
- linux tar 打包.压缩.解压缩 命令说明
- php 内网/外网ip判断
- curl 命令简介
- 信源编码作业之三:散列介绍
- ACdream 1076 XXX的机器人 (dp+置换+康拓展开)
- 自己备忘一下,就不告诉你们是什么,免得被删帖