问题描述
改造2.4.0
retrofit = new Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.build();
我需要在同一请求中发布对象列表和图片列表,如下所示:
@Multipart
@POST("api/debug/{id}/")
Call<ItemResponse> uploadItems(
@Path("id") int id,@Part("items[]") List<Item> items,@Part List<MultipartBody.Part> pictures);
服务器端项目列表未正确序列化:
{
"items": [
"{"description":"desc1","id":1,"title":"title1"}","{"description":"desc2","id":2,"title":"title2"}","{"description":"desc3","id":3,"title":"title3"}"
],"picture1": {
"name": "picture1","size": "315.777KB"
},"picture2": {
"name": "picture2","size": "207.821KB"
}
}
问题似乎出在使用@Part。
诀窍是什么?
解决方法
好吧,你不能替换吗
@Part("items[]")
与@Part
?然后,您将在JSON响应中获得与图片的列表结构相同的结构。