如何使用改造获得json响应

时间:2017-12-19 12:08:52

标签: android web-services retrofit2

{“status”:“0”,“message”:“登录失败:(此帐户不存在或电子邮件尚未验证!请尝试请求管理员激活,然后登录;)” }

这是我的网址

http://zeenatkhanniazai.com/services/login.php

登录类和界面

public static String BASE_URL="http://zeenatkhanniazai.com/services/";
    public static loginServices loginn=null;

    public static loginServices Login(){
        if (loginn == null ){
            Retrofit retrofit=new Retrofit.Builder().baseUrl(BASE_URL)
                    .addConverterFactory(GsonConverterFactory.create())
                    .build();

            loginn = retrofit.create(loginServices.class);
        }


        return loginn;
    }





    public interface loginServices{
        @POST("login.php/{uemail}/{upassword}")
        retrofit2.Call<User> login(@Path("uemail") String uemail, @Path("upassword") String upassword);
    }

MainActivity

String femail=email.getText().toString();
                String fpasssword=password.getText().toString();

                Call<User> call=LoginApi.Login().login(femail,fpasssword);
                call.enqueue(new Callback<User>() {
                    @Override
                    public void onResponse(Call<User> call, Response<User> response) {
                        User users=  response.body();

                        users.getMessege();


                        Toast.makeText(MainActivity.this, "respoces"+new Gson().toJson(response.body()), Toast.LENGTH_SHORT).show();


                    }

                    @Override
                    public void onFailure(Call<User> call, Throwable t) {
                        Toast.makeText(MainActivity.this, "f", Toast.LENGTH_SHORT).show(); }

这是我的用户分类

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

    public String getStatus() {
        return status;
    }

    public String getMessege() {
        return messege;
    }

1 个答案:

答案 0 :(得分:4)

试试这个:

Api客户:

public class ApiClient {


    public static final String BASE_URL = "http://zeenatkhanniazai.com/services/";
    private static Retrofit retrofit = null;


    public static Retrofit getClient() {
        if (retrofit==null) {
            retrofit = new Retrofit.Builder()
                    .baseUrl(BASE_URL)
                    .addConverterFactory(GsonConverterFactory.create())
                    .build();
        }
        return retrofit;
    }
}

Api界面:

public interface ApiInterface {

    @POST("login.php")
    @FormUrlEncoded
    Call<users> getTopRatedMovies(@Field("uemail") String uemail, @Field("upassword") String upassword);

}

用户类:

public class users
{
    @SerializedName("message")
    private String message;
    @SerializedName("status")
    private String status;

    public String getStatus() {
        return status;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public void setStatus(String status) {
        this.status = status;
    }
}

在主要活动中:

call.enqueue(new Callback<users>() {
            @Override
            public void onResponse(Call<users> call, Response<users> response) {
                progressDoalog.dismiss();
                int statusCode = response.code();
                String movies = response.body().getMessage();

                Log.e("sdasd",movies);
                //Log.w("response",new Gson().toJson(response));
                Log.w("response",new GsonBuilder().setPrettyPrinting().create().toJson(response));
              //  recyclerView.setAdapter(new MoviesAdapter(movies, R.layout.list_item_movie, getApplicationContext()));
            }

            @Override
            public void onFailure(Call<users> call, Throwable t) {
                progressDoalog.dismiss();
                // Log error here since request failed
                Log.e(TAG, t.toString());
            }
        });

输出

Login unsuccessful :( This account doesn't exist or the email is not verified yet! try asking admin for activation and then logging in ;)

回应:

"body": {
      "message": "Login unsuccessful :( This account doesn\u0027t exist or the email is not verified yet! try asking admin for activation and then logging in ;)",
      "status": "0"
        },