2016-07-31 59 views
1

我的JSON:我得到零点异常的改造onResponse方法

{ 
    "status": "1", 
    "login": "sucess" 
} 

这是我的模型类:

public class LoginModel { 

    @SerializedName("status") 
    @Expose 
    private String status; 

    @SerializedName("login") 
    @Expose 
    private String login; 
...} 

这是我的接口:

public interface RestInterface { 

    String url = "http://192.168.10.2/tourist/v1"; 

    @FormUrlEncoded 
    @POST("/login") 
    Call<LoginModel> Login(@Field("email") String email, 
          @Field("pass") String passs); 
} 

这是我的来电方式:

Retrofit retrofit = new Retrofit.Builder() 
      .baseUrl(RestInterface.url) 
      .addConverterFactory(GsonConverterFactory.create()) 
      .build(); 
    //Creating Rest Services 
    final RestInterface restInterface = retrofit.create(RestInterface.class); 

    //Calling method to get check login 
    Call<LoginModel> response = restInterface.Login(Email.getText().toString(), Password.getText().toString()); 
    response.enqueue(new Callback<LoginModel>() { 
     @Override 
     public void onResponse(Response<LoginModel> response, Retrofit retrofit) { 
      finish(); 
      startActivity(getIntent()); 

      Email.setText(""); 
      Password.setText(""); 

      LoginModel lm = response.body(); 

      if (lm.getStatus().equals("1")) { //login Success 

       Toast.makeText(LoginActivity.this, "Login In SuccessFully", Toast.LENGTH_SHORT).show(); 
       Intent i = new Intent(LoginActivity.this,AfterLoginActivity.class); 
       startActivity(i); 

      } else if (lm.getStatus().equals("0")) // login failure 
      { 
       Toast.makeText(LoginActivity.this, "Invalid UserName/Password ", Toast.LENGTH_SHORT).show(); 
      } 
     } 

     @Override 
     public void onFailure(Throwable t) { 
      finish(); 
      startActivity(getIntent()); 
      // String merror = error.getMessage(); 
      Toast.makeText(LoginActivity.this, "try again", Toast.LENGTH_LONG).show();   } 
    }); 

我在line => lm.getstatus()。中得到空点异常equals(1); 它改造之前工作正常1.9,然后我改变它为改造2,现在得到零点异常!

+1

异常日志请。 – Amir

+0

@Amir你能帮我用另一个代码吗?它正在改进GET请求方法,并直接进入onFailure();意思是没有回应 –

回答

1

https://inthecheesefactory.com/blog/retrofit-2.0/en在Retrofit 2.0中对新的URL声明模式进行了说明。它建议

- Base URL: always ends with/
- @Url: DO NOT start with/

在你的情况下,url可能被解释为“http://192.168.10.2/login”。 尝试使用

String url = "http://192.168.10.2/tourist/v1/"; 

@POST("login") 
+0

哇,它的工作!感谢一堆! :d –