Как войти OkHttp войти в Crashlytics - PullRequest
2 голосов
/ 30 марта 2019

Я пытаюсь использовать OkHttp для входа в Crashlytics с помощью перехвата, потому что некоторые из моих клиентов получают ошибку 500, и я хочу завершить детали того, что они публикуют и получают в ответе. Точно так же, как OkHttp показывает в логах Android Studio.

Я попытался записать подробности, когда произошла ошибка 200, но безуспешно.

@Module
public class DIModule {

MyApplication application;

public DIModule(MyApplication application) {
    this.application = application;
}
public DIModule()
{

}

@Singleton
@Provides
OkHttpClient getOkHttpClient() {
    HttpLoggingInterceptor logging = new HttpLoggingInterceptor();
    logging.setLevel(HttpLoggingInterceptor.Level.BODY);
    return new OkHttpClient.Builder()
            .addInterceptor(logging).addInterceptor(new HeaderInterceptor())
            .build();
}
@Singleton
@Provides
Retrofit getRetro(OkHttpClient client) {

    return new Retrofit.Builder()
            .baseUrl(Api.BASE_URL)
            .client(client)
            .addConverterFactory(GsonConverterFactory.create()) //Here we are using the GsonConverterFactory to directly convert json data to object
            .addCallAdapterFactory(RxJava2CallAdapterFactory.create())

            .build();
}

@Singleton
@Provides
Context provideApplicationContext()
{
    return application;
}

@Singleton
@Provides
MSharedPref getSharedPreferences(Context app)
{
    return new MSharedPref(app);
}

class HeaderInterceptor implements Interceptor
{
    @Override
    public Response intercept(Chain chain) throws IOException
    {
        Request.Builder builder = chain.request().newBuilder();

        String token="No Value";
        if(StaticData.loginResponse!=null)
            token=StaticData.loginResponse.getAccess_token();

        builder.header("Authorization", "Bearer "+ token)
                .header("Accept", "application/json")
                .header("Content-Type", "application/json");

        Response response=chain.proceed(builder.build());

        if(response.code()==200)
        {
            Log.d("test67","ooooooooooooooooooo"+response);
            //here I will log
        }

        return response;

    }
}

}

Log.d () показывает Ответ {протокол = http / 1.1, код = 200, сообщение = ОК, URL = http: //........./api/user}

но я хочу что-то вроде log

к сбоям.

Получу ли я все эти журналы OkHttp из ответа или я ошибаюсь. Регистрация не фатальная Crashlytics.logException(e); также принимает только Throwable. Так как я это сделаю?

Пожалуйста, помогите ..

...