Bil*_*han 0 android http crud retrofit2
我有一个用于将用户注册到数据库的 Api。我正在使用 Retrofit2 库来使用 Api。
当我在邮递员上测试它时,注册 api 返回完美的结果,但是当我在我的 android 应用程序中实现它时,它给出了电子邮件无效的错误。
我使用了所有类型的电子邮件验证,以便仅在电子邮件有效时提交表单。我无法理解这个问题。
这是我的api供您参考:
**http://ec2-54-201-213-169.us-west-2.compute.amazonaws.com:9000/api/v1/auth/signup**
Run Code Online (Sandbox Code Playgroud)
这是我的改造 Api:
@FormUrlEncoded
@POST("auth/signup")
Call<DefaultResponse> signup(
@Field("userId") String userId,
@Field("email") String email,
@Field("firstName") String firstName,
@Field("lastName") String lastName,
@Field("password") String password,
@Field("confirmPassword") String confirmPassword
);
Run Code Online (Sandbox Code Playgroud)
Api 有一个用于验证电子邮件的内置检查,即使电子邮件有效,它也会在我运行我的应用程序时被触发。
这是Java实现:
Call<DefaultResponse> call = RetrofitClient
.getInstance()
.getApi()
.signup(firstName, lastName, email, password, confirmPassword, userId);
call.enqueue(new Callback<DefaultResponse>() {
@Override
public void onResponse(Call<DefaultResponse> call, Response<DefaultResponse> response) {
DefaultResponse defaultResponse = response.body();
if (response.code() == 200) {
ViewUtils.showSuccessToast(RegisterActivity2.this, "Registered Successful");
} else if (response.code() == 201) {
ViewUtils.showErrorToast(RegisterActivity2.this, defaultResponse.getMsg());
}
loader.hide();
register_btn.setVisibility(View.VISIBLE);
}
@Override
public void onFailure(Call<DefaultResponse> call, Throwable t) {
showErrorToast(RegisterActivity2.this, t.getMessage());
loader.hide();
register_btn.setVisibility(View.VISIBLE);
}
});
Run Code Online (Sandbox Code Playgroud)
我的默认响应模型:
public class DefaultResponse {
@SerializedName("error")
private boolean err;
@SerializedName("message")
private String msg;
public DefaultResponse(boolean err, String msg) {
this.err = err;
this.msg = msg;
}
public boolean isErr() {
return err;
}
public String getMsg() {
return msg;
}
}
Run Code Online (Sandbox Code Playgroud)
这里 Api 端点
signup(
@Field("userId") String userId,
@Field("email") String email,
@Field("firstName") String firstName,
@Field("lastName") String lastName,
@Field("password") String password,
@Field("confirmPassword") String confirmPassword
);
Run Code Online (Sandbox Code Playgroud)
数据传递顺序不正确。API 端点期望第二个参数作为电子邮件,但您正在传递姓氏
.signup(firstName, lastName, email, password, confirmPassword, userId);
Run Code Online (Sandbox Code Playgroud)
尝试正确的顺序。
| 归档时间: |
|
| 查看次数: |
46 次 |
| 最近记录: |