如何在改造android中发布数组

Dee*_*rma 14 android retrofit

如何通过post方法在改造中发布以下参数?

 "params":{"body": {
    "learning_objective_uuids": [
      "ED4FE2BB2008FDA9C8133FF462959C0968FAB98C4D1DB8F2"
    ],
    "note": "FasfAFSASFASDF",
    "user_uuids": [
      "EDF8B7EC20005ACC5C40FF7D6E988801F5BAD83CBBCDB97F",
      "EDF8F78F2000569C64101F244AA20C0070D2A7FCB1939E19"
    ]
  }
}
} }
Run Code Online (Sandbox Code Playgroud)

hka*_*glu 42

@FormUrlEncoded
@POST("service_name") 
   void functionName(
        @FieldMap Map<String, String> learning_objective_uuids, @FieldMap Map<String, String> user_uuids, @Field("note") String note,
        Callback<CallBackClass> callback
    );
Run Code Online (Sandbox Code Playgroud)

更好的解决方案:使用arraylist ..参考链接:johnsonsu

@FormUrlEncoded
    @POST("service_name") 
       void functionName(
            @Field("learning_objective_uuids[]") ArrayList<String> learning_objective_uuids, @Field("user_uuids[]") ArrayList<String> user_uuids, @Field("note") String note,
            Callback<CallBackClass> callback
        );
Run Code Online (Sandbox Code Playgroud)


God*_*ard 7

从今天开始,运行 Retrofitimplementation 'com.squareup.retrofit2:retrofit:2.1.0'

这工作完美...

@FormUrlEncoded
@POST("index.php?action=item")
Call<Reply> updateManyItem(@Header("Authorization") String auth_token, @Field("items[]") List<Integer> items, @Field("method") String method);
Run Code Online (Sandbox Code Playgroud)

你可以忽略@Headerand @Field("method")....主要部分是@Field("items[]") List<Integer> items

这就是您可以发送物品的原因。在 API 方面,我只是寻找一个整数数组,这非常有效。

  • 我唯一忘记的是字段名称后面的“[]”。非常感谢 ! (3认同)

Div*_*hal 6

看到这个例子,我需要将注册字段数据作为json请求传递

@POST("magento2apidemo/rest/V1/customers")
Call<RegisterEntity> customerRegistration(@Body JsonObject registrationData);
Run Code Online (Sandbox Code Playgroud)

这里我创建了registrationData

private static JsonObject generateRegistrationRequest() {
        JSONObject jsonObject = new JSONObject();
        try {
            JSONObject subJsonObject = new JSONObject();
            subJsonObject.put("email", "abc@xyz.com");
            subJsonObject.put("firstname", "abc");
            subJsonObject.put("lastname", "xyz");

            jsonObject.put("customer", subJsonObject);
            jsonObject.put("password", "password");

        } catch (JSONException e) {
            e.printStackTrace();
        }
        JsonParser jsonParser = new JsonParser();
        JsonObject gsonObject = (JsonObject) jsonParser.parse(jsonObject.toString());
        return gsonObject;
    }
Run Code Online (Sandbox Code Playgroud)