2016-07-31 2 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();   } 
    }); 

行=> lm.getstatus()。equals(1);でヌルポイント例外が発生しています。 改造1.9で正常に動作していましたが、Retrofit 2に変更しました。現在、ヌルポイントの例外が発生しています。

+1

例外ログを使用してください試してみてください。 – Amir

+0

@Amir別のコードを教えてもらえますか?それはGETリクエストメソッドを改造しており、それは直接onFailure()に行きます。応答がないことを意味します。 –

答えて

1

https://inthecheesefactory.com/blog/retrofit-2.0/enには、Retrofit 2.0の新しいURL宣言パターンについての説明があります。それはあなたのケースでは、URLが「http://192.168.10.2/login」と解釈される可能性があります

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

を示唆しています。

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

@POST("login") 
+0

WOW働いています!本当にありがとう!! :D –