android 方法拦截器,android-Retrofit 2.0.0 Beta2 OkHttpClient拦截器抛出...

我正在尝试构建用于登录的拦截器.这是我的以下代码:

OkHttpClient client = new OkHttpClient();

client.interceptors().add(new Interceptor() {

@Override

public Response intercept(Chain chain) throws IOException {

Request request = chain.request();

String authToken = SharedPrefsManager.get(context).getAccessToken();

request.newBuilder()

.addHeader("Authorization", "Bearer " + authToken)

.addHeader("Content-Type", "application/json")

.build();

return intercept(chain);

}

});

我的GSON:

Gson gson = new GsonBuilder()

.setExclusionStrategies(new ExclusionStrategy() {

@Override

public boolean shouldSkipField(FieldAttributes f) {

return f.getDeclaringClass().equals(RealmObject.class);

}

@Override

public boolean shouldSkipClass(Class> clazz) {

return false;

}

})

.create();

我的改装RestAdapter:

Retrofit restAdapter = new Retrofit.Builder()

.baseUrl(Endpoints.ENDPOINT_BASE_URL+Endpoints.ENDPOINT_VERSION)

.addConverterFactory(GsonConverterFactory.create())

.client(client)

.build();

apiInterface = restAdapter.create(ApiService.class);

但是,当我使用以下命令致电此服务时:

try {

Account myAccount = ApiInterface.getKidMixClient(getActivity()).getAccountDetails().execute().body();

callbacks.showDashboard(myAccount.getUser());

} catch (IOException e) {

e.printStackTrace();

}

我收到一个StackOverFlowError,以下Logcat输出:

java.lang.StackOverflowError: stack size 8MB

10-08 16:42:39.013 21279-21279/com.kidmixapp.kidmixchild E/AndroidRuntime: at java.util.ArrayList.(ArrayList.java:71)

10-08 16:42:39.013 21279-21279/com.kidmixapp.kidmixchild E/AndroidRuntime: at com.squareup.okhttp.Headers$Builder.(Headers.java:215)

10-08 16:42:39.013 21279-21279/com.kidmixapp.kidmixchild E/AndroidRuntime: at com.squareup.okhttp.Headers.newBuilder(Headers.java:121)

10-08 16:42:39.013 21279-21279/com.kidmixapp.kidmixchild E/AndroidRuntime: at com.squareup.okhttp.Request$Builder.(Request.java:137)

10-08 16:42:39.013 21279-21279/com.kidmixapp.kidmixchild E/AndroidRuntime: at com.squareup.okhttp.Request$Builder.(Request.java:120)

10-08 16:42:39.013 21279-21279/com.kidmixapp.kidmixchild E/AndroidRuntime: at com.squareup.okhttp.Request.newBuilder(Request.java:94)

10-08 16:42:39.013 21279-21279/com.kidmixapp.kidmixchild E/AndroidRuntime: at com.kidmixapp.commoncode.networking.ApiInterface$1.intercept(ApiInterface.java:39)

10-08 16:42:39.013 21279-21279/com.kidmixapp.kidmixchild E/AndroidRuntime: at com.kidmixapp.commoncode.networking.ApiInterface$1.intercept(ApiInterface.java:45)

10-08 16:42:39.013 21279-21279/com.kidmixapp.kidmixchild E/AndroidRuntime: at com.kidmixapp.commoncode.networking.ApiInterface$1.intercept(ApiInterface.java:45)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值