我在改型android中使用Login Api时遇到问题

时间:2020-10-05 11:06:52

标签: android api android-studio retrofit2

如何通过改造来调用Post Api我是新手,正在从事改造。我在登录Api时遇到问题 这是我的代码, 为

RetrofitClientInstance.java

public class RetrofitClientInstance {
    private static Retrofit retrofit;
    private static final String BASE_URL = "Url";

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

GetDataService.java

public interface GetDataService {

    @Headers({
            "Content-Type: application/json",
            "Accept: application/json",
    })

    @FormUrlEncoded
    @POST("signup")
    Call<RegisterResponseModel> registerUser( @Field("name") String name,
                                              @Field("email") String email,
                                              @Field("phone") String phone,
                                              @Field("password") String password,
                                              @Field("password_confirmation") String password_confirmation);

    @FormUrlEncoded
    @POST("login")
    Call<RegisterResponseModel> loginUser(    @Field("email") String email,
                                              @Field("password") String password
                                             );
}

在这里我叫api'

private void sendLoginRequest() {
        service = RetrofitClientInstance.getRetrofitInstance().create(GetDataService.class);
        Call<RegisterResponseModel> call = service.loginUser( "akbar@gmail.com","abcdefgh");

        call.enqueue(new Callback<RegisterResponseModel>() {
            @Override
            public void onResponse(Call<RegisterResponseModel> call, Response<RegisterResponseModel> response) {
                progressDialog.dismiss();
                Integer status  = response.body().getStatus();
                if (status == 200){
                    Toast.makeText(getApplicationContext(), response.body().getMessage(), Toast.LENGTH_LONG).show();

                }
                else {
                    Toast.makeText(getApplicationContext(), response.body().getMessage(), Toast.LENGTH_LONG).show();
                }

            }

            @Override
            public void onFailure(Call<RegisterResponseModel> call, Throwable t) {
                progressDialog.dismiss();
                Toast.makeText(getApplicationContext(), "You may have an error", 
                Toast.LENGTH_LONG).show();
            }
        });
    }

RegisterDataModel.java

public class RegisterDataModel {
        @SerializedName("id")
        private int id;
        @SerializedName("name")
        private String name;
        @SerializedName("email_verified_at")
        private String email_verified_at;
        @SerializedName("phone")
        private String phone;
        @SerializedName("profile_image")
        private String profile_image;
        @SerializedName("latitude")
        private String latitude;
        @SerializedName("longitude")
        private String longitude;
        @SerializedName("is_active_user")
        private String is_active_user;
        @SerializedName("payment_method_name")
        private String payment_method_name;
        @SerializedName("name_on_card")
        private String name_on_card;
        @SerializedName("card_number")
        private String card_number;
        @SerializedName("expiry_date")
        private String expiry_date;
        @SerializedName("cvv")
        private String cvv;
        @SerializedName("notifications")
        private String notifications;
        @SerializedName("is_online")
        private String is_online;

        public RegisterDataModel() {
        }

        public RegisterDataModel(int id, String name, String email_verified_at, String phone, String profile_image, String latitude, String longitude, String is_active_user, String payment_method_name, String name_on_card, String card_number, String expiry_date, String cvv, String notifications, String is_online) {
            this.id = id;
            this.name = name;
            this.email_verified_at = email_verified_at;
            this.phone = phone;
            this.profile_image = profile_image;
            this.latitude = latitude;
            this.longitude = longitude;
            this.is_active_user = is_active_user;
            this.payment_method_name = payment_method_name;
            this.name_on_card = name_on_card;
            this.card_number = card_number;
            this.expiry_date = expiry_date;
            this.cvv = cvv;
            this.notifications = notifications;
            this.is_online = is_online;
        }

        public int getId() {
            return id;
        }

        public void setId(int id) {
            this.id = id;
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public String getEmail_verified_at() {
            return email_verified_at;
        }

        public void setEmail_verified_at(String email_verified_at) {
            this.email_verified_at = email_verified_at;
        }

        public String getPhone() {
            return phone;
        }

        public void setPhone(String phone) {
            this.phone = phone;
        }

        public String getProfile_image() {
            return profile_image;
        }

        public void setProfile_image(String profile_image) {
            this.profile_image = profile_image;
        }

        public String getLatitude() {
            return latitude;
        }

        public void setLatitude(String latitude) {
            this.latitude = latitude;
        }

        public String getLongitude() {
            return longitude;
        }

        public void setLongitude(String longitude) {
            this.longitude = longitude;
        }

        public String getIs_active_user() {
            return is_active_user;
        }

        public void setIs_active_user(String is_active_user) {
            this.is_active_user = is_active_user;
        }

        public String getPayment_method_name() {
            return payment_method_name;
        }

        public void setPayment_method_name(String payment_method_name) {
            this.payment_method_name = payment_method_name;
        }

        public String getName_on_card() {
            return name_on_card;
        }

        public void setName_on_card(String name_on_card) {
            this.name_on_card = name_on_card;
        }

        public String getCard_number() {
            return card_number;
        }

        public void setCard_number(String card_number) {
            this.card_number = card_number;
        }

        public String getExpiry_date() {
            return expiry_date;
        }

        public void setExpiry_date(String expiry_date) {
            this.expiry_date = expiry_date;
        }

        public String getCvv() {
            return cvv;
        }

        public void setCvv(String cvv) {
            this.cvv = cvv;
        }

        public String getNotifications() {
            return notifications;
        }

        public void setNotifications(String notifications) {
            this.notifications = notifications;
        }

        public String getIs_online() {
            return is_online;
        }

        public void setIs_online(String is_online) {
            this.is_online = is_online;
        }
    }

RegisterResponseModel.java

public class RegisterResponseModel {
    @SerializedName("status")
    private int status;
    @SerializedName("message")
    private String message;
    @SerializedName("data")
    private RegisterDataModel data;

    public RegisterResponseModel() {
    }

    public RegisterResponseModel(int status, String message, RegisterDataModel data) {
        this.status = status;
        this.message = message;
        this.data = data;
    }

    public int getStatus() {
        return status;
    }

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

    public String getMessage() {
        return message;
    }

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

    public RegisterDataModel getData() {
        return data;
    }

    public void setData(RegisterDataModel data) {
        this.data = data;
    }

    @Override
    public String toString() {
        return "RegisterResponseModel{" +
                "status=" + status +
                ", message='" + message + '\'' +
                ", data=" + data +
                '}';
    }
}

1 个答案:

答案 0 :(得分:0)

对于每个Api,我们都必须声明各个标头,但我在登录时缺少此标头。

相关问题