如何在RETROFIT中同时发布带有字符串的ArrayList?

时间:2019-07-18 21:05:01

标签: java android post retrofit

我正在尝试在Retrofit中发布ArrayList和String值。如何在同一帖子中发送它们? 我已经尝试过了,但是没有用。 谢谢。

Etiket_post.java

@POST("/api/r_etiket")
Call<Result> post_etiket(@Body List< EtiketItem_List> items, @Body String FileNo);

Print_Screen.java

Retrofit retrofit = new Retrofit.Builder()
        .baseUrl("myURL")
        .addConverterFactory(GsonConverterFactory.create())
        .build();
Etiket_Post etiket_post = retrofit.create(Etiket_Post.class);
String FileNo = FileId;
ArrayList<EtiketItem_List> items = new ArrayList<>();
for (int e = 0; e < okutulan_list.size(); e++) {
    items.add(new EtiketItem_List(
        okutulan_list.get(e).STOK_KODU,
        okutulan_list.get(e).STOK_ADI,
        okutulan_list.get(e).OlcuBrim,
        okutulan_list.get(e).STHAR_GCMIK));
}
Call<Result> call = etiket_post.post_etiket(items, FileNo);
call.enqueue(new Callback<Result>() {
    @Override
    public void onResponse(Call<Result> call, Response<Result> response) {
        Toast.makeText(Print_Screen.this, response.body().result, Toast.LENGTH_LONG).show();
    }

    @Override
    public void onFailure(Call<Result> call, Throwable t) {
        Toast.makeText(Print_Screen.this, t.getLocalizedMessage(), Toast.LENGTH_LONG).show();
    }
});

1 个答案:

答案 0 :(得分:0)

  

您可以像这样使用Retrofit2以原始格式发送数据。

    {
  "String1" :"anyString",
  "arrayList":[
       {
        "A":"Appple",
        "B":"ball"
    }
  ]

}

  

modelClass示例

 @SerializedName("user_id")
@Expose
private String user_id;

@SerializedName("product")
@Expose
List<OneProductModel> oneProductModels;


public CartPost(String user_id, List<OneProductModel> oneProductModels) {
    this.user_id = user_id;
    this.oneProductModels = oneProductModels;
}

@POST("/api/r_etiket")
Call<Result> post_etiket(@Body modelClass);