2017-05-29 60 views
0

我使用retrofit2,并希望增加一些头使用OkHttp3 addInterceptor 但不工作Android的改造

这是我的代码

OkHttpClient.Builder httpClient = new OkHttpClient.Builder(); 
    httpClient.addInterceptor(new Interceptor() { 
     @Override 
     public Response intercept(Chain chain) throws IOException { 
      Request original = chain.request(); 
      Request request = original.newBuilder() 
        .removeHeader("Authorization") 
        .removeHeader("Content-type") 
        .removeHeader("User-Agent") 
        .addHeader("Content-type", "application/x-www-form-urlencoded; charset=UTF-8") 
        .addHeader("Accept-Language", "en-US") 
        .addHeader("User-Agent", ApiConfig.userAgent) 
        .method(original.method(), original.body()) 
        .build(); 
      return chain.proceed(request); 
     } 
    }); 
OkHttpClient client = httpClient.build(); 

    if (apiInterface == null) { 
     Retrofit retrofit = new Retrofit.Builder() 
       .baseUrl(ApiConfig.baseUrl) 
       .addConverterFactory(GsonConverterFactory.create()) 
       .addCallAdapterFactory(RxJavaCallAdapterFactory.create()) 
       .client(client) 
       .build(); 
     apiInterface = retrofit.create(ApiInterface.class); 
    } 
    return apiInterface; 

请帮我添加自定义标题。 亲切的问候

+0

请点击此链接: https://stackoverflow.com/questions/32963394/how-to-use-interceptor-to-add-headers-in -retrofit-2-0 – MrTy

+0

还没有工作 – MiladCoder

+0

把你的logcat超过 – MrTy

回答

0

试试这个,如果有帮助

RestAdapter.Builder builder = new RestAdapter.Builder() 
    .setRequestInterceptor(new RequestInterceptor() { 
     @Override 
     public void intercept(RequestFacade request) { 
      request.addHeader("Accept", "application/json;versions=1"); 
      if (isUserLoggedIn()) { 
       request.addHeader("Authorization", getToken()); 
      }      
     } 
    }); 
+0

它的改造1.9但我使用v2 – MiladCoder