Retrofit中加入Token,Cookie
在我们进行开发过程中,很多地方都需要和服务器进行交互,和服务器进行交互,那就意味这需要进行网络请求。一般都会使用网络请求框架来对进行网络请求,一般都是使用Retrofit。前面我在使用retrofit进行请求的时候,请求需要将token携带到服务器进行验证。那这个时候应该将token放在哪呢,然后将其携带到服务器呢。
在使用retrofit进行网络请求的时候,在创建OkhttpClient的时候可以在加入一个Token的拦截器,继承一个Interceptor 重写intercept方法,这样就可以实现在请求中加入Token或者Cookie。
重写Interceptor
public class AddTokenInterceptor implements Interceptor {
@Override
public Response intercept(Chain chain) throws IOException {
Response originalResponse = chain.proceed(chain.request());
return originalResponse.newBuilder()
.header("token", token)//token 为你本地保存的token
.build();
}
//将拦截器进行添加
mOkhttpClient = okhttpClientBuilder
.addInterceptor(AddTokenInterceptor())//将token拦截器添加到okhttp中
.build()
添加Cookie的方法和添加Tooken的方法是一样的。
OKHTTP添加Token,Cookie
在OKHTTP中添加的步骤其实和retrofit中差不多是一样的,因为retrofit的底层使用的也是OKHTTP。
只是在OKHTTP中添加的话可能更简单,更直接一点,可以直接在Request中进行添加。
Request request = new Request.Builder()
.url("url")
.addHeader("Token", "token")//本地保存的token
.post(new FormBody.Builder().build())
.build();
在OKHTTP中可以直接在请求中添加就可以了,只要在它的请求头中加入,那么在请求的时候就可以将token,cookie携带上去。