Android pass Первый символ API заглавными буквами с модификацией - PullRequest
0 голосов
/ 22 апреля 2019

в нашем веб-сервисе мы можем передать имя пользователя и пароль с этой структурой ниже, и мы можем получить данные с сервера успешно

POST  ->  http://www.sample.com/Service1.svc/login

Content-Type: application/json

Body: 

{
"UserName": "1",
"Password": "1"
}

или с Curl:

curl -X POST -H 'Content-Type: application/json' -i 'http://www.sample.com/Service1.svc/login' --data '{
"UserName": "1",
"Password": "1"
}'

моя проблема с Retrofit - это прописные буквы первых символов в имени пользователя и пароле, когда я реализую приведенный ниже код, я получаю 0, поскольку имя пользователя и пароль неверны

LoginSchema класс:

class LoginSchema {
    private int Username;
    private int Password;

    public LoginSchema(int username, int password) {
        Username = username;
        Password = password;
    }
}

Retrofit реализация:

LoginSchema loginSchema = new LoginSchema(1, 1);

Call<Integer> call = requestService.checkLoginAccount(loginSchema);
call.enqueue(new Callback<Integer>() {
    @TargetApi(Build.VERSION_CODES.KITKAT)
    @Override
    public void onResponse(@NotNull Call<Integer> call, @NotNull final Response<Integer> response) {
        try {
            if (response.isSuccessful() && response.body() != null) {
                EventBus.getDefault().post(new EventLoginResult(true, response.body().toString()));
            } else {
                EventBus.getDefault().post(new EventLoginResult(false, null));
            }
        } catch (Exception e) {
            EventBus.getDefault().post(new EventLoginResult(false, null));
        }
    }
    @Override
    public void onFailure(Call<Integer> call, Throwable t) {
    }
});

, а затем реализация API:

public interface RestfulWebServices {
    @Headers("Content-Type: application/json")
    @POST("/Service1.svc/login")
    Call<Integer> checkLoginAccount(@Body TaskLogin.LoginSchema loginSchema);
}

1 Ответ

2 голосов
/ 22 апреля 2019

Ваш класс POJO должен быть таким, как показано ниже.

class LoginSchema {
    @SerializedName("UserName")
    private int Username;
    @SerializedName("Password")
    private int Password;

    public LoginSchema(int username, int password) {
        Username = username;
        Password = password;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...