Я пытаюсь использовать 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}
но я хочу что-то вроде
к сбоям.
Получу ли я все эти журналы OkHttp из ответа или я ошибаюсь. Регистрация не фатальная Crashlytics.logException(e);
также принимает только Throwable. Так как я это сделаю?
Пожалуйста, помогите ..