Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用改型在多部分表单请求中发送POJO对象?_Java_Android_Retrofit_Pojo_Multipartform Data - Fatal编程技术网

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);