使用Retrofit发送动态数量的POST参数可以通过使用@Body注解和Map来实现。下面是一个代码示例:
首先,创建一个包含参数的实体类:
public class PostParams {
private Map params;
public PostParams(Map params) {
this.params = params;
}
public Map getParams() {
return params;
}
}
然后,在Retrofit接口中定义POST请求:
public interface ApiService {
@POST("your-endpoint")
Call sendData(@Body PostParams params);
}
在发送请求时,你可以创建一个包含动态参数的Map并将其传递给PostParams类的构造函数。然后,将PostParams对象作为参数传递给sendData()方法:
Map paramsMap = new HashMap<>();
paramsMap.put("param1", "value1");
paramsMap.put("param2", "value2");
// 添加更多参数
PostParams postParams = new PostParams(paramsMap);
Call call = apiService.sendData(postParams);
call.enqueue(new Callback() {
@Override
public void onResponse(Call call, Response response) {
// 处理响应
}
@Override
public void onFailure(Call call, Throwable t) {
// 处理错误
}
});
这样就可以发送包含动态数量的POST参数了。在服务器端,你可以通过从PostParams对象中获取参数来访问这些参数。