Java 如何处理WP-API的GET和POST JSON方案的差异
我有一个带有WP-API插件的WordPress网站,因此我可以为我的Android应用程序请求数据。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>
到目前为止,我只获取数据,但现在我希望我的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();