在android上的wordpress.org博客上发表评论

时间:2013-10-14 18:34:27

标签: java android wordpress

我正在尝试添加一项功能,以便在我的应用中为我的博客添加评论。我试图通过httpclient实现这一目标,但我一直未能实现这一目标。这是我的代码:

HttpClient client = new DefaultHttpClient();
HttpPost http = new HttpPost("http://universityoftrollogy.wordpress.com/wp-comments-post.php");
http.setHeader("Content-type","application/x-www-form-urlencoded;charset=UTF-8");
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("_wp_http_referer", referer));
nameValuePairs.add(new BasicNameValuePair("hc_post_as", "guest"));
nameValuePairs.add(new BasicNameValuePair("comment_post_ID", postId));
nameValuePairs.add(new BasicNameValuePair("comment_parent","0"));
nameValuePairs.add(new BasicNameValuePair("comment", cData));
nameValuePairs.add(new BasicNameValuePair("email", cEmail));
nameValuePairs.add(new BasicNameValuePair("author", cName));
http.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = client.execute(http);

我的客户端正常执行但我在帖子上看不到任何评论! 我不确定为什么它不起作用,但可能的原因可能是它没有处理重定向。

有人能指导我以正确的方式实现它吗?任何帮助将不胜感激。

修改:检查我的回复后,我发现回复的状态行为500.

2 个答案:

答案 0 :(得分:0)

有一个名为xxx_none的参数来验证wordpress中的用户。我认为,当客户打开会话时,它会随机生成。

您可能需要尝试打开一次页面,然后解析该参数(我想在您的页面中,它是“highlander_comment_nonce”),然后将它也放入http请求中?

提示:如果您使用的是chrome,那么开发人员工具中有一个工具可以帮助您以cUrl格式复制请求,这样您就可以看到发送到服务器的所有参数。 enter image description here

答案 1 :(得分:0)

当您对wordpress.com博客工作时,您将从一个错误转移到另一个错误, 无法诊断错误。 所以我建议:在你的开发机器上建立你自己的网络服务器和wordpress-blog。这并不困难。 然后你可以检查你的网络服务器的错误日志wordpress不喜欢什么。

是的,你可能需要一个“随机数”。您可以在codex-page中阅读。但请记住,codex页面是从wordpress-plugin-developer的角度编写的。