Java 如何使用改型在多部分表单请求中发送POJO对象?
我正在尝试使用Java 如何使用改型在多部分表单请求中发送POJO对象?,java,android,retrofit,pojo,multipartform-data,Java,Android,Retrofit,Pojo,Multipartform Data,我正在尝试使用改装以多部分形式发送以下请求: { "attachment": { "file_cache": "....." "original": "upload/image.png", "versions": { "small": "uploads/small_image.png" } }, "content": "", "id": 1 } 我不知道这是否是我应该发送给API的正确请求,因为他们的文档非常糟糕,但我能够使用C
改装以多部分形式发送以下请求:
{ "attachment": {
"file_cache": "....."
"original": "upload/image.png",
"versions": {
"small": "uploads/small_image.png"
}
},
"content": "",
"id": 1
}
我不知道这是否是我应该发送给API的正确请求,因为他们的文档非常糟糕,但我能够使用Chrome开发工具来研究API接收到的请求以及它是如何响应的,它似乎接受了JSON
这是我观察到的一张照片:
他们的文档仅说明“附件”
应该是一个对象
是否可以以多部分格式
请求发送POJO
对象?我的REST界面如下所示:
@Multipart
@POST("/v2/{type}/{id}/message.json")
void addMessage(@Path("type") String type,
@Path("id") int id,
@Part("content") String content,
@Part("attachment") MultipartTypedOutput multipartTypedOutput,
Callback<Post> callback);
关于如何实现这一点有什么想法吗
如果我尝试用改型发送POJO
对象,我会得到一个状态为422
不可处理的实体。您尝试过TypedFile吗?如果不这样做
@Multipart
@POST("/v2/{type}/{id}/message.json")
void addMessage(@Path("type") String type,
@Path("id") int id,
@Part("content") String content,
@Part("attachment") TypedFile photoFile,
Callback<Post> callback);
File attachmentFile = new File("upload/image.png");
TypedFile attachmentTypedFile = new TypedFile("image/*", photoFile);
我通过这个链接解决了这个问题
我不知道这一点,但为了发送JSON
,您需要设置restapi服务,如下所示:
@Multipart
@POST("/v2/{type}/{id}/message.json")
void addMessage(@Path("type") String type,
@Path("id") int id,
@Part("content") String content,
@Part("attachment[file_cache]") String fileCache,
@Part("attachment[original]") String original,
@Part("attachment[versions][small]") String small,
Callback<Post> callback);
@Multipart
@POST(“/v2/{type}/{id}/message.json”)
void addMessage(@Path(“type”)字符串类型,
@路径(“id”)内部id,
@部分(“内容”)字符串内容,
@部分(“附件[文件缓存]”)字符串文件缓存,
@部分(“附件[原件]”)字符串原件,
@部分(“附件[版本][小]”)字符串小,
回调(回调);
希望这能帮助其他人走出困境
@Multipart
@POST("/v2/{type}/{id}/message.json")
void addMessage(@Path("type") String type,
@Path("id") int id,
@Part("content") String content,
@Part("attachment[file_cache]") String fileCache,
@Part("attachment[original]") String original,
@Part("attachment[versions][small]") String small,
Callback<Post> callback);