private static <ResponseT> Converter<ResponseBody, ResponseT> createResponseConverter( Retrofit retrofit, Method method, Type responseType) { Annotation[] annotations = method.getAnnotations(); try { return retrofit.responseBodyConverter(responseType, annotations); } catch (RuntimeException e) { // Wide exception range because factories are user code. throw methodError(method, e, "Unable to create converter for %s", responseType); } }
@Override public @Nullable Converter<ResponseBody, ?> responseBodyConverter( Type type, Annotation[] annotations, Retrofit retrofit) { if (getRawType(type) != Optional.class) { return null; } Type innerType = getParameterUpperBound(0, (ParameterizedType) type); Converter<ResponseBody, Object> delegate = retrofit.responseBodyConverter(innerType, annotations); return new OptionalConverter<>(delegate); } }
@Override public @Nullable Converter<ResponseBody, ?> responseBodyConverter( Type type, Annotation[] annotations, Retrofit retrofit) { if (getRawType(type) != Optional.class) { return null; } Type innerType = getParameterUpperBound(0, (ParameterizedType) type); Converter<ResponseBody, Object> delegate = retrofit.responseBodyConverter(innerType, annotations); return new OptionalConverter<>(delegate); }
@Override public @Nullable Converter<ResponseBody, ?> responseBodyConverter( Type type, Annotation[] annotations, Retrofit retrofit) { if (getRawType(type) != Optional.class) { return null; } Type innerType = getParameterUpperBound(0, (ParameterizedType) type); Converter<ResponseBody, Object> delegate = retrofit.responseBodyConverter(innerType, annotations); return new OptionalConverter<>(delegate); } }
private static <ResponseT> Converter<ResponseBody, ResponseT> createResponseConverter( Retrofit retrofit, Method method, Type responseType) { Annotation[] annotations = method.getAnnotations(); try { return retrofit.responseBodyConverter(responseType, annotations); } catch (RuntimeException e) { // Wide exception range because factories are user code. throw methodError(method, e, "Unable to create converter for %s", responseType); } }
@Override public @Nullable Converter<ResponseBody, ?> responseBodyConverter( Type type, Annotation[] annotations, Retrofit retrofit) { if (getRawType(type) != Optional.class) { return null; } Type innerType = getParameterUpperBound(0, (ParameterizedType) type); Converter<ResponseBody, Object> delegate = retrofit.responseBodyConverter(innerType, annotations); return new OptionalConverter<>(delegate); }
retrofit.responseBodyConverter(Error.class, new Annotation[0]);
public static boolean handleError(Retrofit retrofit, Response<?> response) { if(response != null && !response.isSuccessful() && response.errorBody() != null) { Converter<ResponseBody, ErrorResponse> converter = retrofit.responseBodyConverter(ErrorResponse.class, new Annotation[0]); try { ErrorResponse errorResponse = converter.convert(response.errorBody()); // do something } catch(IOException e) { Log.e(TAG, "An error occurred", e); } return true; } return false; }
private void buildHereMapsService() { Gson gson = new GsonBuilder().create(); Retrofit retrofit = new Retrofit.Builder() .baseUrl("https://route.api.here.com/routing/7.2/") .addConverterFactory(GsonConverterFactory.create(gson)) .addCallAdapterFactory(RxJavaCallAdapterFactory.create()) .build(); hereMapsService = retrofit.create(HereMapsService.class); hereMapsErrorConverter = retrofit.responseBodyConverter(HereMapsResponse.class, new Annotation[0]); }
private JiraRestClient(String jiraEndpoint) { Retrofit retrofit = new Retrofit.Builder() .baseUrl(jiraEndpoint) .addConverterFactory(GsonConverterFactory.create()) .build(); converter = retrofit.responseBodyConverter(new TypeToken<ResponseBody>() { }.getType(), new Annotation[0]); authService = retrofit.create(JiraRestAuthService.class); apiService = retrofit.create(JiraRestApiService.class); }
private JiraRestClient(String jiraEndpoint) { Retrofit retrofit = new Retrofit.Builder() .baseUrl(jiraEndpoint) .addConverterFactory(GsonConverterFactory.create()) .build(); converter = retrofit.responseBodyConverter(new TypeToken<ResponseBody>() { }.getType(), new Annotation[0]); authService = retrofit.create(JiraRestAuthService.class); apiService = retrofit.create(JiraRestApiService.class); }
public static APIError parseError(Response<?> response) { Retrofit retrofit = new Retrofit.Builder() .baseUrl(API_HTTPS_BASE_URL) .addConverterFactory(GsonConverterFactory.create()) .client(new OkHttpClient.Builder().build()).build(); Converter<ResponseBody, APIError> converter = retrofit.responseBodyConverter(APIError.class, new Annotation[0]); APIError error; try { error = converter.convert(response.errorBody()); } catch (IOException e) { return new APIError(); } return error; }
/** * Extracts and converts the response error body into an object. */ private static EosApiError getEosApiError(Response<?> response) throws IOException { return (EosApiError) retrofit.responseBodyConverter(EosApiError.class, new Annotation[0]) .convert(response.errorBody()); } }
/** * Extracts and converts the response error body into an object. */ public static BinanceApiError getBinanceApiError(Response<?> response) throws IOException, BinanceApiException { return (BinanceApiError)retrofit.responseBodyConverter(BinanceApiError.class, new Annotation[0]) .convert(response.errorBody()); } }
private static ApiError getApiError(Response<?> response) throws IOException, ApiException { return (ApiError) retrofit.responseBodyConverter(ApiError.class, new Annotation[0]).convert(response.errorBody()); } }
private void errorDidOccur(@Nullable Callback<MapMatchingResponse> callback, @NonNull Response<MapMatchingResponse> response) { // Response gave an error, we try to LOGGER any messages into the LOGGER here. Converter<ResponseBody, MapMatchingError> errorConverter = getRetrofit().responseBodyConverter(MapMatchingError.class, new Annotation[0]); if (callback == null) { Logger.getLogger(MapboxMapMatching.class.getName()).log( Level.WARNING, "Failed to complete your request and callback is null"); } else { try { callback.onFailure(getCall(), new Throwable(errorConverter.convert(response.errorBody()).message())); } catch (IOException ioException) { Logger.getLogger(MapboxMapMatching.class.getName()).log( Level.WARNING, "Failed to complete your request. ", ioException); } } }
public static ApiError parseError(Response<?> response) { Converter<ResponseBody, ApiError> converter = SnomedAPI.retrofit .responseBodyConverter(ApiError.class, new Annotation[0]); ApiError error; try { error = converter.convert(response.errorBody()); } catch (IOException e) { return new ApiError(); } return error; } }
@Override public Object parseError(@NonNull Response<?> response) { try { Converter<ResponseBody, ErrorEntity> converter = RetrofitClient.getRetrofit().responseBodyConverter(ErrorEntity.class, new Annotation[0]); return converter.convert(response.errorBody()); } catch (IOException | NullPointerException e) { e.printStackTrace(); ErrorEntity error = new ErrorEntity(); error.setMessage("Unknown error"); return error; } } }
/** * HTTP response body converted to specified {@code type}. {@code null} if there is no * response. * * @throws IOException if unable to convert the body to the specified {@code type}. */ public <T> T getErrorBodyAs(Class<T> type) throws IOException { if (response == null || response.errorBody() == null) { return null; } Converter<ResponseBody, T> converter = retrofit.responseBodyConverter(type, new Annotation[0]); return converter.convert(response.errorBody()); } }
/** * If the response code is 409 tries to convert the body into a {@link CheckinError}. */ @Nullable public CheckinError checkForCheckinError(Response response) { if (response.code() != 409) { return null; // only code 409 can be a check-in error } Converter<ResponseBody, CheckinError> errorConverter = retrofit().responseBodyConverter(CheckinError.class, new Annotation[0]); try { //noinspection ConstantConditions never null if unsuccessful return errorConverter.convert(response.errorBody()); } catch (IOException e) { return new CheckinError(); // null values } }