Я хочу предоставить чистый код в соответствии с архитектурой руководящих принципов и правилами CleanCode.
Я пытался использовать библиотеку gson для сериализации данных, используемых в вызове дооснащения.
Я знаю, что могуиспользуйте @SerializedName в моем классе моделей, но я хочу узнать, как использовать gson builder.
В MainActivity у меня есть:
btnLogin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
CredentialModel credentials = new CredentialModel("User", "Password");
Gson gson = new GsonBuilder().serializeNulls().create();
String json = gson.toJson(credentials);
UserApiClient userApiClient = RetrofitInstace.getRetrofitInstance().create(UserApiClient.class);
Call<String> call = userApiClient.login(json);
call.enqueue(new Callback<String>() {
@Override
public void onResponse(Call<String> call, Response<String> response) {
toastNotify(String.valueOf(response.code()));
}
@Override
public void onFailure(Call<String> call, Throwable t) {
toastNotify("Fail");
}
});
}
});
Интерфейс UserApiClient:
@POST("/api/AppUser/login")
Call<String> login(@Body String credentials);
Класс RetrofitInstance:
public static Retrofit getRetrofitInstance() {
if (retrofit == null) {
retrofit = new retrofit2.Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.client(new OkHttpClient())
.build();
}
return retrofit;
}
Я получаю 400 код ошибки, когда почтальон с копированием данных из переменной json в режиме отладки в тело дает мне код 200. Это не мой сервер, поэтому я не могу сказать, что сделанона стороне сервера.Также я новичок в Android и еще не знаю, как проверить необработанный запрос в Android Studio.