当用户尝试注册时,我无法传递任何字符为-或 _ 的电子邮件地址。这是改造的定义:
@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,但在第1行第2列路径$ BEGIN_ARRAY是>
例如,抛出异常的电子邮件:我将使用的电子邮件为: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"