Как отправить запрос PUT со строкой модификации и списком массивов модели, мне нужно использовать закодированный URL - PullRequest
0 голосов
/ 17 сентября 2018

Кто-нибудь может подсказать мне, как отправить запрос PUT с этим json

 {
  "delivery_status": "Partially Completed",
  "signatures": "==skdjfkjdsakjhfoiuewyrdskjhfjdsaf",
  "assignee_note": "this is remarks and and and nothing",
  "id": "this is remarks and and and nothing",
  "returned_products": [
    {
      "id": "18",
      "quantity": 3,
      "reasons": "i dont know reason .. bus wapis a gya saman :-)"
    },
    {
      "id": "19",
      "quantity": 4,
      "reasons": "i dont know reason .. bus wapis a gya saman :-)"
    }
  ]
}

, вот что я пробовал, но не смог

@FormUrlEncoded
    @PUT("delivery_notes/update/1.json")
    Call<UploadDeliveryNote> postDeliveryNote(
            @Field("returned_products[]") ArrayList<ReturnedProduct> returned_products,
            @Field("delivery_status") String deliveryStatus,
            @Field("signatures") String signatures,
            @Field("id") String id,
            @Field("assignee_note") String note
    );

, но не смог, а затем попытался это.

@Headers("Content-Type: application/json")
    @PUT("delivery_notes/update/1.json")
    Call<UploadDeliveryNote> postDeliveryNote(@Body String body);

что я делаю не так в этом?Моя главная проблема - я посылаю простые строки, и один объект модели - это список моделей. Return_products Заранее спасибо.

1 Ответ

0 голосов
/ 17 сентября 2018

Может быть много способов реализовать этот вызов с помощью Retrofit, самый простой, на мой взгляд, это сделать классы моделей.

Ваш вызов будет выглядеть как -

@PUT(""delivery_notes/update/1.json"")
Call<ApiResponse<UploadDeliveryNote>> postDeliveryNote(@Body Example example);

и вызовэто как

    Example example = new Example();
    example.setAssigneeNote();
    example.setDeliveryStatus();
    example.setReturnedProducts();
    apiInterface.postDeliveryNote(example);

Example.java

public class Example {

    @SerializedName("delivery_status")
    @Expose
    private String deliveryStatus;
    @SerializedName("signatures")
    @Expose
    private String signatures;
    @SerializedName("assignee_note")
    @Expose
    private String assigneeNote;
    @SerializedName("id")
    @Expose
    private String id;
    @SerializedName("returned_products")
    @Expose
    private List<ReturnedProduct> returnedProducts = null;

    public String getDeliveryStatus() {
        return deliveryStatus;
    }

    public void setDeliveryStatus(String deliveryStatus) {
        this.deliveryStatus = deliveryStatus;
    }

    public String getSignatures() {
        return signatures;
    }

    public void setSignatures(String signatures) {
        this.signatures = signatures;
    }

    public String getAssigneeNote() {
        return assigneeNote;
    }

    public void setAssigneeNote(String assigneeNote) {
        this.assigneeNote = assigneeNote;
    }

    public String getId() {
        return id;
    }

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

    public List<ReturnedProduct> getReturnedProducts() {
        return returnedProducts;
    }

    public void setReturnedProducts(List<ReturnedProduct> returnedProducts) {
        this.returnedProducts = returnedProducts;
    }

}

ReturnedProduct.java

public class ReturnedProduct {

    @SerializedName("id")
    @Expose
    private String id;
    @SerializedName("quantity")
    @Expose
    private int quantity;
    @SerializedName("reasons")
    @Expose
    private String reasons;

    public String getId() {
        return id;
    }

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

    public int getQuantity() {
        return quantity;
    }

    public void setQuantity(int quantity) {
        this.quantity = quantity;
    }

    public String getReasons() {
        return reasons;
    }

    public void setReasons(String reasons) {
        this.reasons = reasons;
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...