如何使用改造获得 json 响应 [英] how to get json response using retrofit

查看:31
本文介绍了如何使用改造获得 json 响应的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

主活动

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("message")
    private String message;
    @SerializedName("status")
    private String status;

    public String getStatus() {
        return status;
    }

    public String message() {
        return message;
    }

推荐答案

试试这个:

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 doesnu0027t exist or the email is not verified yet! try asking admin for activation and then logging in ;)",
      "status": "0"
        },

这篇关于如何使用改造获得 json 响应的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆