Самое простое решение для этого - просто определить ваш ответ типа ResponseBody
, который выглядит следующим образом:
@GET(value = "/{yourFirstNumber}/tv/{yourSecondNumber}")
Call<ResponseBody> getStuff(@Path("yourFirstNumber") String whateverYouWantToNameThis1,
@Path("yourSecondNumber") String whateverYouWantToNameThis2,
@Query("api_key") String apiKey,
@Query("append_to_response") String appendToResponse);
Просто убедитесь, что вы называете эти числовые переменные тем, чем они являются, вместо того, чтобы использовать фразу, которую я использовал, поскольку я не знаком с API.
При этом ваш запрос вызова будет выглядеть так:
Call<ResponseBody> call = yourService.getStuff(yourObject);
call.enqueue(new Callback<ResponseBody>() {
@Override
public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
L.m("RESPONSE CODE == " + response.code());
if(response.isSuccessful()){
ResponseBody successResponse = response.body();
//This means it was successful (IE a 200)
} else {
ResponseBody errorResponse = response.errorBody();
//This means there was an error (IE a 402)
}
}
@Override
public void onFailure(Call<ResponseBody> call, Throwable t) {
//Handle your error here
}
});
Оттуда вы можете анализировать ваш successResponse
несколькими различными способами.
Например, я использую GSON и несколько других методов в этого класса , но это действительно зависит от того, как вы хотите его проанализировать. Если вы хотите преобразовать его в строку, используйте successResponse.string()
(, а не опечатку), обязательно используйте метод string (), а не toString () ) и преобразуйте его из сериализованного ответа в тот, который вы можно легко использовать.