【问题标题】:How to Fetch data from API using Retrofit in Android如何在 Android 中使用 Retrofit 从 API 获取数据
【发布时间】:2022-01-23 17:21:55
【问题描述】:

我正在尝试在 Android 中使用改造调用 API。虽然我成功地能够 api 作为响应,但我得到 Success 代码 = 200。但除此之外,Inside Json 对象 Json 数组为空,尽管我试图在 中调用相同的 api >邮递员我得到了想要的结果。

我正在尝试使用 POST 请求调用

网址请求:- https://example.com/AD1/api/user/profile

我在正文中传递参数 userid:- MFL176116

在邮递员下面

APIInterface.java

公共接口 APIInterface {

@POST("profile")
Call<ProfilePojo> getUserProfile(@Body ProfilePojo profilePojo);

}

ProfilePojo.java

公共类 ProfilePojo {

@SerializedName("message")
@Expose
private String message;
@SerializedName("code")
@Expose
private Integer code;
@SerializedName("user_data")
@Expose
private List<UserDatum> userData = new ArrayList();

private String userid;

public ProfilePojo(String userid) {
    this.userid = userid;
}

public String getUserid() {
    return userid;
}

public void setUserid(String userid) {
    this.userid = userid;
}
public String getMessage() {
    return message;
}

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

public List<UserDatum> getUserData() {
    return userData;
}

public void setUserData(List<UserDatum> userData) {
    this.userData = userData;
}

public Integer getCode() {
    return code;
}

public void setCode(Integer code) {
    this.code = code;
}

public class UserDatum {

    @SerializedName("id")
    @Expose
    private String id;
    @SerializedName("username")
    @Expose
    private String username;
    @SerializedName("password")
    @Expose
    private String password;
    @SerializedName("under_id")
    @Expose
    private String underId;
    @SerializedName("place_under_id")
    @Expose
    private String placeUnderId;
    @SerializedName("mobile")
    @Expose
    private String mobile;
    @SerializedName("side")
    @Expose
    private String side;
    @SerializedName("email")
    @Expose
    private String email;
    @SerializedName("status")
    @Expose
    private String status;
    @SerializedName("member_name")
    @Expose
    private String memberName;
    @SerializedName("package_id")
    @Expose
    private String packageId;
    @SerializedName("package_id1")
    @Expose
    private String packageId1;
    @SerializedName("avatar")
    @Expose
    private String avatar;
    @SerializedName("gender")
    @Expose
    private Object gender;
    @SerializedName("date_of_birth")
    @Expose
    private Object dateOfBirth;
    @SerializedName("address_line1")
    @Expose
    private String addressLine1;
    @SerializedName("address_line2")
    @Expose
    private String addressLine2;
    @SerializedName("country")
    @Expose
    private String country;
    @SerializedName("country_code")
    @Expose
    private String countryCode;
    @SerializedName("state")
    @Expose
    private String state;
    @SerializedName("city")
    @Expose
    private String city;
    @SerializedName("pincode")
    @Expose
    private String pincode;
    @SerializedName("pancard_no")
    @Expose
    private String pancardNo;
    @SerializedName("adharcard_no")
    @Expose
    private String adharcardNo;
    @SerializedName("franchaise_type")
    @Expose
    private String franchaiseType;
    @SerializedName("franchise_id")
    @Expose
    private Object franchiseId;
    @SerializedName("franchise_per")
    @Expose
    private Object franchisePer;
    @SerializedName("franchise_status")
    @Expose
    private Object franchiseStatus;
    @SerializedName("transaction_pass")
    @Expose
    private String transactionPass;
    @SerializedName("id_proof")
    @Expose
    private Object idProof;
    @SerializedName("address_proof")
    @Expose
    private Object addressProof;
    @SerializedName("self_video")
    @Expose
    private String selfVideo;
    @SerializedName("residential_proof")
    @Expose
    private String residentialProof;
    @SerializedName("btc_address")
    @Expose
    private Object btcAddress;
    @SerializedName("perfect_money")
    @Expose
    private Object perfectMoney;
    @SerializedName("email_status")
    @Expose
    private String emailStatus;
    @SerializedName("email_verify")
    @Expose
    private String emailVerify;
    @SerializedName("created_on")
    @Expose
    private String createdOn;
    @SerializedName("edited_on")
    @Expose
    private String editedOn;
    @SerializedName("isDeleted")
    @Expose
    private String isDeleted;

    public String getId() {
        return id;
    }

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

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getUnderId() {
        return underId;
    }

    public void setUnderId(String underId) {
        this.underId = underId;
    }

    public String getPlaceUnderId() {
        return placeUnderId;
    }

    public void setPlaceUnderId(String placeUnderId) {
        this.placeUnderId = placeUnderId;
    }

    public String getMobile() {
        return mobile;
    }

    public void setMobile(String mobile) {
        this.mobile = mobile;
    }

    public String getSide() {
        return side;
    }

    public void setSide(String side) {
        this.side = side;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getStatus() {
        return status;
    }

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

    public String getMemberName() {
        return memberName;
    }

    public void setMemberName(String memberName) {
        this.memberName = memberName;
    }

    public String getPackageId() {
        return packageId;
    }

    public void setPackageId(String packageId) {
        this.packageId = packageId;
    }

    public String getPackageId1() {
        return packageId1;
    }

    public void setPackageId1(String packageId1) {
        this.packageId1 = packageId1;
    }

    public String getAvatar() {
        return avatar;
    }

    public void setAvatar(String avatar) {
        this.avatar = avatar;
    }

    public Object getGender() {
        return gender;
    }

    public void setGender(Object gender) {
        this.gender = gender;
    }

    public Object getDateOfBirth() {
        return dateOfBirth;
    }

    public void setDateOfBirth(Object dateOfBirth) {
        this.dateOfBirth = dateOfBirth;
    }

    public String getAddressLine1() {
        return addressLine1;
    }

    public void setAddressLine1(String addressLine1) {
        this.addressLine1 = addressLine1;
    }

    public String getAddressLine2() {
        return addressLine2;
    }

    public void setAddressLine2(String addressLine2) {
        this.addressLine2 = addressLine2;
    }

    public String getCountry() {
        return country;
    }

    public void setCountry(String country) {
        this.country = country;
    }

    public String getCountryCode() {
        return countryCode;
    }

    public void setCountryCode(String countryCode) {
        this.countryCode = countryCode;
    }

    public String getState() {
        return state;
    }

    public void setState(String state) {
        this.state = state;
    }

    public String getCity() {
        return city;
    }

    public void setCity(String city) {
        this.city = city;
    }

    public String getPincode() {
        return pincode;
    }

    public void setPincode(String pincode) {
        this.pincode = pincode;
    }

    public String getPancardNo() {
        return pancardNo;
    }

    public void setPancardNo(String pancardNo) {
        this.pancardNo = pancardNo;
    }

    public String getAdharcardNo() {
        return adharcardNo;
    }

    public void setAdharcardNo(String adharcardNo) {
        this.adharcardNo = adharcardNo;
    }

    public String getFranchaiseType() {
        return franchaiseType;
    }

    public void setFranchaiseType(String franchaiseType) {
        this.franchaiseType = franchaiseType;
    }

    public Object getFranchiseId() {
        return franchiseId;
    }

    public void setFranchiseId(Object franchiseId) {
        this.franchiseId = franchiseId;
    }

    public Object getFranchisePer() {
        return franchisePer;
    }

    public void setFranchisePer(Object franchisePer) {
        this.franchisePer = franchisePer;
    }

    public Object getFranchiseStatus() {
        return franchiseStatus;
    }

    public void setFranchiseStatus(Object franchiseStatus) {
        this.franchiseStatus = franchiseStatus;
    }

    public String getTransactionPass() {
        return transactionPass;
    }

    public void setTransactionPass(String transactionPass) {
        this.transactionPass = transactionPass;
    }

    public Object getIdProof() {
        return idProof;
    }

    public void setIdProof(Object idProof) {
        this.idProof = idProof;
    }

    public Object getAddressProof() {
        return addressProof;
    }

    public void setAddressProof(Object addressProof) {
        this.addressProof = addressProof;
    }

    public String getSelfVideo() {
        return selfVideo;
    }

    public void setSelfVideo(String selfVideo) {
        this.selfVideo = selfVideo;
    }

    public String getResidentialProof() {
        return residentialProof;
    }

    public void setResidentialProof(String residentialProof) {
        this.residentialProof = residentialProof;
    }

    public Object getBtcAddress() {
        return btcAddress;
    }

    public void setBtcAddress(Object btcAddress) {
        this.btcAddress = btcAddress;
    }

    public Object getPerfectMoney() {
        return perfectMoney;
    }

    public void setPerfectMoney(Object perfectMoney) {
        this.perfectMoney = perfectMoney;
    }

    public String getEmailStatus() {
        return emailStatus;
    }

    public void setEmailStatus(String emailStatus) {
        this.emailStatus = emailStatus;
    }

    public String getEmailVerify() {
        return emailVerify;
    }

    public void setEmailVerify(String emailVerify) {
        this.emailVerify = emailVerify;
    }

    public String getCreatedOn() {
        return createdOn;
    }

    public void setCreatedOn(String createdOn) {
        this.createdOn = createdOn;
    }

    public String getEditedOn() {
        return editedOn;
    }

    public void setEditedOn(String editedOn) {
        this.editedOn = editedOn;
    }

    public String getIsDeleted() {
        return isDeleted;
    }

    public void setIsDeleted(String isDeleted) {
        this.isDeleted = isDeleted;
    }

}

}

Dashboard.java

private void getUserProfile() {

    apiInterface = ApiLinks.getClient().create(APIInterface.class);
    ProfilePojo profilePojo = new ProfilePojo("MFL176116");
    Call<ProfilePojo> call = apiInterface.getUserProfile(profilePojo);
    call.enqueue(new Callback<ProfilePojo>() {
        @Override
        public void onResponse(@NonNull Call<ProfilePojo> call, @NonNull Response<ProfilePojo> response) {
            
            ProfilePojo profilePojo = response.body();
            Toast.makeText(getApplicationContext(), "sucess", Toast.LENGTH_LONG).show();
            
        }

        @Override
        public void onFailure(@NonNull Call<ProfilePojo> call, @NonNull Throwable t) {
            Toast.makeText(getApplicationContext(), t.getMessage(), Toast.LENGTH_LONG).show();
        }
    });
}

调试代码后可以看到Message is success, code =200, but userdata size ==0 请帮我摆脱这个错误

【问题讨论】:

    标签: java android retrofit2


    【解决方案1】:

    再次检查您调用 api 的方式,即使您的用户 ID 为 null,也可能在用户中为 null,但响应是 200 bc 没有错误,只是没有具有该 ID 的用户。

    【讨论】:

      猜你喜欢
      • 2020-05-27
      • 1970-01-01
      • 2021-03-08
      • 1970-01-01
      • 2016-08-05
      • 1970-01-01
      • 1970-01-01
      • 2020-07-12
      • 1970-01-01
      相关资源
      最近更新 更多