我在发布一些数据时遇到了一些错误。
我的应用可以注册一个新用户,将数据寄存器发送到服务器,然后返回结果。
如果注册成功,结果
{
"res": "success"
}
如果注册失败,结果
{
"res": "customer id not found"
}
这是我发布数据的代码
Register register = new Register(nameStr, emailStr, phoneStr, passStr, rePassStr,customerIDStr );
Call<ResultRegister> call = apiInterface.registration(register);
call.enqueue(new Callback<ResultRegister>() {
@Override
public void onResponse(Call<ResultRegister> call, Response<ResultRegister> response) {
String responseString;
responseString = response.body().getRes();
if(responseString.equalsIgnoreCase("success")){
Toast.makeText(getActivity(), "Register Success", Toast.LENGTH_SHORT).show();
Fragment fragment = new LoginFragment();
FragmentManager fragmentManager = getFragmentManager();
fragmentManager.beginTransaction().replace(R.id.wrap_login_container, fragment)
.addToBackStack(null).commit();
}else{
Toast.makeText(getActivity(), "Register Failed", Toast.LENGTH_SHORT).show();
}
}
@Override
public void onFailure(Call<ResultRegister> call, Throwable t) {
t.printStackTrace();
call.cancel();
Toast.makeText(getActivity(), "Please check your network connection and internet permission", Toast.LENGTH_LONG).show();
}
});
如果寄存器返回成功,一切都很好,但如果寄存器返回错误,则出现空指针异常,指向此行:
responseString = response.body().getRes();
修改
这是我的ResultRegister类
public class ResultRegister {
@SerializedName("res")
String res;
public String getRes() {
return res;
}
public void setRes(String res) {
this.res = res;
}
}
任何解决方案??
答案 0 :(得分:0)
我已经解决了我的问题。主要问题是当寄存器失败时,错误代码为500(内部错误服务器)。因此response.body()
为null
。