Retrofit响应正文有时会出错,但有时会成功

问题描述:

发布某些数据时出现一些错误。Retrofit响应正文有时会出错,但有时会成功

我的应用程序可以注册一个新用户,发送数据寄存器到服务器,然后返回结果。

的结果,如果寄存器是成功

{ 
    "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; 
} 

}

任何解决方案?

+1

您正在发布的web服务和数据? –

+0

我无法访问webservice –

+0

那么你如何将数据传递给webservice? –

我已经解决了我的问题。主要问题是寄存器失败时,错误代码是500(内部错误服务器)。所以response.body()null