一多的PartMap请求相同PARAM多个值我想送一个多查询相同的特性参数的多个值。这里是我的代码:使用与改造2
接口:
@Multipart
@POST("user")
Observable<Void> updateUser(@PartMap() Map<String, RequestBody> partMap, @Part MultipartBody.Part photo);
这个请求让我更新了新的图片和一些参数的用户。在参数中,我可以用一个名为“skills []”的参数来指定用户的技能。要指定数量不同的参数,我使用HashMap;但是使用HashMap,我无法使用相同的名称指定多个参数。
即我不能这样做:
for(Integer skill : skills) {
RequestBody body = RequestBody.create(MediaType.parse("multipart/form-data"), skill.toString());
map.put("skills[]", body);
}
因为地图只接受相同的密钥的一个值。
我如何可以指定一个参数的多个值。使用Postman来测试请求,我没有问题。
我试图用HashMap<String, List<RequestBody>>
代替:
List<RequestBody> bodies = new ArrayList<>();
for(Integer skill : skills) {
RequestBody body = RequestBody.create(MediaType.parse("multipart/form-data"), skill.toString());
bodies.add(body);
}
map.put("skills[]", bodies);
但似乎它不支持。创建查询包含空值的请求主体:
Content-Disposition: form-data; name="skills[]"
Content-Transfer-Encoding: binary
Content-Type: application/json; charset=UTF-8
Content-Length: 16
[null,null,null]
退房这answer.The答案是关于如何在凌空发布multipale参数,但我猜它在你的情况下工作。我在我的项目中对Retrofit做同样的事情,它工作正常可能对你有帮助。这里是[refernce](https://stackoverflow.com/questions/35239778/android-volley-how-to-post-multiple-parameters/35239922#35239922)。 –