Android Retrofit-发送动态数量的POST参数

svg*_*in3 2 java android retrofit retrofit2

我需要向端点发送动态数量的POST参数值(可能为1或可能为50)。它们都将具有相同的键值。

这可能吗?我似乎无法弄清楚如何创建一个包含此类内容的RequestBody,即使我尝试以纯文本形式构造它也是如此。

我已经为此准备好了字符串列表,但是我只是不知道如何创建这种东西。当我输入许多具有相同键值的post form参数时,端点可以在PostMan中工作,因此可以为端点正确设置端点。我只是不确定Retrofit是否支持这种事情,而且似乎找不到任何信息。

我目前正在使用Java而不是Kotlin。有什么想法吗?

Mah*_*alv 5

您还可以像这样将多个字段参数传递给您的请求:

@FormUrlEncoded
@POST("/oauth/access_token")
Call<YourResponseObject> sendData(
    @FieldMap Map<String, String> params
);
Run Code Online (Sandbox Code Playgroud)

该映射可以采用可变数量的args。

因此,您可以像这样传递数据:

/*
map = { "field1_key"="value1", "field2_key"="value2", "field3_key"="value3", ...}
*/
retrofit().create(YourInterface.class).sendData(mapOfFields)
Run Code Online (Sandbox Code Playgroud)

ps: retrofit()是一种返回要使用的Retrofit实例的方法。