0

当我通过邮递员作为行请求(Json)发送请求时,我得到了成功响应,但是从我的 android 设备上它没有成功。

邮递员请求 在此处输入图像描述

这是我的Android代码,

界面ApiService.Class

    @Headers("Content-Type: application/json")
    @POST("api/ShopData/AddProduct")
    Call<AddNewProductResponse> addNewProduct(@Header("Authorization") String authorization, @Body JsonObject jsonObject);

班级ApiClient.Class

public static Call<AddNewProductResponse> addNewProduct(String token, JsonObject jsonObject) {
    token = "Bearer " + token;
    Call<AddNewProductResponse> call = apiService.addNewProduct(token, jsonObject);
    return call;
}

API 调用

    private void addNewProductToServer(JsonObject jsonObject) {
        String token = AppSettings.getInstance(getActivity()).getStringValue(PrefKeys.token);
        if (token != null && jsonObject != null) {
            ApiClient.addNewProduct(token, jsonObject).enqueue(new Callback<AddNewProductResponse>() {
                @Override
                public void onResponse(Call<AddNewProductResponse> call, retrofit2.Response<AddNewProductResponse> response) {
                    if (response != null && response.body() != null) {
                        if (response.body().getMessage().getCode() == 1) {
                            showProductAddedSuccessDialog();
                        } else
                            Helper.showAlertDialogOK(getActivity(), Helper.getErrorMessages(response.body().getMessage().getCode()));
                    } else
                        Helper.showServerErrorDialog(getActivity());
                }

                @Override
                public void onFailure(Call<AddNewProductResponse> call, Throwable t) {
                   Helper.showServerErrorDialog(getActivity());
                }
            });
        }
    }

创建请求 JsonObject,

        JsonObject jsonObject = new JsonObject();
        JsonArray images = new JsonArray();
        try {
            if (productImage != null) {
                JsonObject imgObject = new JsonObject();
                imgObject.addProperty("attachment", productImage.getAttachment());
                imgObject.addProperty("position", 1);
                images.add(imgObject);
            }

            jsonObject.addProperty("name", edtTxtProductName.getText().toString().trim());
            jsonObject.addProperty("short_description", edtTxtShortDescription.getText().toString().trim());
            jsonObject.addProperty("full_description", edtTxtLongDescription.getText().toString().trim());
            jsonObject.addProperty("sku", edtTxtSku.getText().toString().trim());
            jsonObject.addProperty("stock_quantity", Integer.parseInt(edtTxtStockQuantity.getText().toString().trim()));
            jsonObject.addProperty("price", Float.parseFloat(edtTxtPrice.getText().toString().trim()));
            jsonObject.addProperty("images", String.valueOf(images));
            addNewProductToServer(jsonObject);
        } catch (Exception e) {
            e.printStackTrace();
        }
4

2 回答 2

3

创建您的 ModelClass 并设置您的值

public class ModelClass {

@SerializedName("name")
private String name = "";
@SerializedName("short_description")
private String shortDesc = "";
@SerializedName("full_description")
private String fullDescription = "";
@SerializedName("sku")
private String sku = "";
@SerializedName("stock_quantity")
private int qty = 0;
@SerializedName("price")
private double price = 0.0;
@SerializedName("images")
private ArrayList<ImageModel> imageList;


public String getName() {
    return name;
}

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

public String getShortDesc() {
    return shortDesc;
}

public void setShortDesc(String shortDesc) {
    this.shortDesc = shortDesc;
}

public String getFullDescription() {
    return fullDescription;
}

public void setFullDescription(String fullDescription) {
    this.fullDescription = fullDescription;
}

public String getSku() {
    return sku;
}

public void setSku(String sku) {
    this.sku = sku;
}

public int getQty() {
    return qty;
}

public void setQty(int qty) {
    this.qty = qty;
}

public double getPrice() {
    return price;
}

public void setPrice(double price) {
    this.price = price;
}

public ArrayList<ImageModel> getImageList() {
    return imageList;
}

public void setImageList(ArrayList<ImageModel> imageList) {
    this.imageList = imageList;
}
}

创建你的 ImageModel 类

private class ImageModel {
@SerializedName("attachment")
private String attachment;
@SerializedName("position")
private int position;

public String getAttachment() {
    return attachment;
}

public void setAttachment(String attachment) {
    this.attachment = attachment;
}

public int getPosition() {
    return position;
}

public void setPosition(int position) {
    this.position = position;
}
}

并通过您的改造实施课程

@Headers("Content-Type: application/json")
@POST("api/ShopData/AddProduct")
Call<AddNewProductResponse> addNewProduct(@Header("Authorization") String authorization, @Body ModelClass jsonObject);

希望这对您有所帮助。

于 2018-08-30T13:30:54.590 回答
1

您需要更换线路

jsonObject.addProperty("images", String.valueOf(images));

经过

jsonObject.add("images", images);
于 2018-08-30T13:24:41.567 回答