改装调用服务器2.0.0Beta2,什么也没发生 - 回调永远不会被调用

时间:2015-10-08 22:20:19

标签: android gson retrofit okhttp

我这样打电话:

ApiInterface.getKidMixClient(getActivity()).getAccountDetails().enqueue(LoginFragment.this);

这是我的interface定义:

@GET(Endpoints.GET_MY_ACCOUNT_DETAILS+"/")
Call<Account> getAccountDetails();

但我的回调onResponse永远不会被调用?

这个设置有问题吗?

public class ApiInterface {
private static ApiService apiInterface;

public static ApiService getKidMixClient(final Context context) {
    if (apiInterface == null) {

        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();
                chain.proceed(request);
                return intercept(chain);
            }
        });

        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();

        Retrofit restAdapter = new Retrofit.Builder()
                .baseUrl(Endpoints.ENDPOINT_BASE_URL+Endpoints.ENDPOINT_VERSION)
                .addConverterFactory(GsonConverterFactory.create(gson))
                .client(client)
       /*         .setRequestInterceptor(new RequestInterceptor() {
                    @Override
                    public void intercept(RequestFacade request) {
                        String authToken = SharedPrefsManager.get(context).getAccessToken();
                        request.addHeader("Authorization", "Bearer " + authToken);
                        request.addHeader("Content-Type", "application/json");
                    }
                })*/
                .build();

        apiInterface = restAdapter.create(ApiService.class);
    }

    return apiInterface;
}

}

这是应该被调用的回调,但绝不是:

 @Override
public void onResponse(Response<Account> response, Retrofit retrofit) {
    Log.v("Call Success", "Call was a sucess to server login!");
    Account account = response.body();
    if(account != null && account.getUser() != null){
        if(callbacks != null){
            Log.d(TAG, "start");
            callbacks.showDashboard(account.getUser());
            Log.d(TAG, "finish");
        }
    }
}

它位于LoginFragment类中,其中的初始调用是通过enqueue进行的。

0 个答案:

没有答案