一多的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)。 –