Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.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 如何处理WP-API的GET和POST JSON方案的差异_Java_Android_Wordpress_Retrofit_Wp Api - Fatal编程技术网

Java 如何处理WP-API的GET和POST JSON方案的差异

Java 如何处理WP-API的GET和POST JSON方案的差异,java,android,wordpress,retrofit,wp-api,Java,Android,Wordpress,Retrofit,Wp Api,我有一个带有WP-API插件的WordPress网站,因此我可以为我的Android应用程序请求数据。 到目前为止,我只获取数据,但现在我希望我的Android用户能够对文章发表评论。 所以我需要能够通过API创建新的注释,但我无法让它为我工作 我认为这是错误的: 获取请求: { "id": ​3, "post": ​275, "author": ​1, "date": "2016-05-12T12:10:03", "content": { "rendered": "<p>

我有一个带有WP-API插件的WordPress网站,因此我可以为我的Android应用程序请求数据。
到目前为止,我只获取数据,但现在我希望我的Android用户能够对文章发表评论。
所以我需要能够通过API创建新的注释,但我无法让它为我工作

我认为这是错误的:
获取请求:

{
"id": ​3,
"post": ​275,
"author": ​1,
"date": "2016-05-12T12:10:03",
"content": 
{
    "rendered": "<p>asdfsdfsadf</p>\n"
}
}
{
"id": ​3,
"post": ​275,
"author": ​1,
"date": "2016-05-12T12:10:03",
"content": "<p>asdfsdfsadf</p>\n"    
}
如您所见,POST请求的格式与GET请求的格式不同,我的POJO是在GET请求之后建模的。
我使用GSON进行序列化,它将创建类似于GET请求的JSON;这在帖子上不起作用。
该请求是通过改型和OkHTTP完成的

WordPress中引发以下错误:

Warning: stripslashes() expects parameter 1 to be string, array given in wp-includes/kses.php on line 1566
{"code":"rest_cannot_read_post","message":"Sorry, you cannot read the post for this comment.","data":{"status":403}}
我的问题是:如何能够发布新的评论,并且能够使用相同的POJO获得评论


我希望有人能帮助我

我终于自己修好了

修复程序使用自定义JsonSerialiser的方式如下:

public static class ContentSerializer implements JsonSerializer<CommentModel.Content> {
        public JsonElement serialize(final CommentModel.Content content, final Type type, final JsonSerializationContext context) {
            return new JsonPrimitive(content.rendered);
        }
    }

然后它将生成正确的JSON

。。。这是一个完整的文档,那么问题出在哪里呢?我没有使用WordPress.com,而是使用带有插件的自托管版本(.org)。就我所见,这是完全不同的。
public static class ContentSerializer implements JsonSerializer<CommentModel.Content> {
        public JsonElement serialize(final CommentModel.Content content, final Type type, final JsonSerializationContext context) {
            return new JsonPrimitive(content.rendered);
        }
    }
Gson gson = new GsonBuilder()
                .setDateFormat("yyyy-MM-dd'T'HH:mm:ss")
                .registerTypeAdapter(CommentModel.Content.class, new ContentSerializer())
                .create();