У меня проблемы с передачей любого адреса электронной почты с символом - или _ , когда пользователь пытается зарегистрироваться.Вот определение модификации:
@Headers(API_KEY)
@FormUrlEncoded
@POST("signInUser")
Call<HttpResponseModel> signInUser(@Field(value ="userEmail", encoded = true) String userEmail,
@Field("userId") String userId,
@Field("userPasswordHash") String pwHash);
и мой вызов метода:
Call<HttpResponseModel> signInUser = retrofitApiInterface.signInUser(userEmail, userId, passWord);
signInUser.enqueue(new Callback<HttpResponseModel>() {
@Override
public void onResponse(@NonNull Call<HttpResponseModel> call, @NonNull Response<HttpResponseModel> response) {
..... //my implemenation
}
@Override
public void onFailure(@NonNull Call<HttpResponseModel> call, @NonNull Throwable t) {
listener.onFailure(); //exception gets thrown here
}
});
}
И сообщение об ошибке, которое я получаю:
com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: ожидаемый BEGIN_OBJECT, но был BEGIN_ARRAY в пути 1 строки 2 столбца $
Например, электронное письмо, которое выдает исключение: я бы использовал:my-name@email.com.
Работает нормально, если адрес электронной почты myname@email.com
Значения вызовов:
encodedNames = {Collections$UnmodifiableRandomAccessList@12120} size = 3
0 = "userEmail"
1 = "userId"
2 = "userPasswordHash"
encodedValues = {Collections$UnmodifiableRandomAccessList@12121} size = 3
0 = "my-name%40email.com"
1 = ""
2 = "mypassword"