Как прочитать строковый ответ от Retrofit - PullRequest
0 голосов
/ 29 октября 2018

Мне нужно обработать функциональность, основанную на ответе о модернизации.

Метод post имеет запрос в формате json и получает ответ в виде текста true

Я попытался получить этот ответ в следующем фрагменте кода. Но всегда я получаю false , хотя я получаю true в ответе почтальона.

Click to view the response

private void callPostLoginAPI(String webServiceResponse) {
ApiInterface apiService = ApiClient.getClient().create(ApiInterface.class);
Call<ResponseBody> result = apiService.getPostDealer(postLoginAPI(webServiceResponse));
result.enqueue(new Callback<ResponseBody>() {
@Override
public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
String postLoginResponse = null;
try {
postLoginResponse = response.body().string();
} catch (IOException e) {
e.printStackTrace();
}
 if (postLoginResponse != null || (!postLoginResponse.equals(""))) {
                    if (postLoginResponse.equals("true")) {
                        try {
                            if (PreferenceClass.getInstallationID(Loginpage.this) == null ||
                                    PreferenceClass.getInstallationID(Loginpage.this).equals("")) {
                                request_appInstallation_API(0);
                            } else {
                                checkAppUpdate();
                            }
                        } catch (Exception e) {
                            e.printStackTrace();
                        }
                    } else {
                        Toast.makeText(Loginpage.this, "Please contact CMS Admin", Toast.LENGTH_LONG).show();
                    }
                } else {
                    Toast.makeText(Loginpage.this, "Something went wrong... Please try again", Toast.LENGTH_LONG).show();
                }
            }

            @Override
            public void onFailure(Call<ResponseBody> call, Throwable t) {
                Toast.makeText(Loginpage.this, t.getMessage(), Toast.LENGTH_SHORT).show();
            }
        });
    }

UPDATE:

Когда я попробовал следующее, я не получил соответствующее «значение ответа почтальона».

ApiInterface apiService = ApiClient.getClient1().create(ApiInterface.class);
        Call<Boolean> result = apiService.getPostDealer(postLoginAPI(webServiceResponse));
        result.enqueue(new Callback<Boolean>() {
            @Override
            public void onResponse(Call<Boolean> call, Response<Boolean> response) {
                Log.i("Response", response.body().toString());

                if (response.isSuccessful()) {
                    if (response.body() != null) {
                        Log.i("callPostLoginAPI", response.body().toString());
                        Toast.makeText(Dealer_Loginpage.this, "returned", Toast.LENGTH_LONG).show();
                    } else {
                        Toast.makeText(Dealer_Loginpage.this, "Nothing returned", Toast.LENGTH_LONG).show();
                    }
                }
            }

            @Override
            public void onFailure(Call<Boolean> call, Throwable t) {
                Toast.makeText(Dealer_Loginpage.this, "Nothing returned", Toast.LENGTH_LONG).show();
            }
        });

ApiClient.getClient1 () :

public static Retrofit getClient1() {
    if (retrofit1 == null) {
        retrofit1 = new Retrofit.Builder().baseUrl(GlobalClass.sBase_Url).
                addConverterFactory(ScalarsConverterFactory.create()).
                addConverterFactory(GsonConverterFactory.create()).build();
    }
    return retrofit1;
}

1 Ответ

0 голосов
/ 29 октября 2018

Решение:

Прикрепите это:

postLoginResponse.replaceAll("[^A-Za-z]+", "");

После строки:

postLoginResponse = response.body().string();

и попробуй.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...