0

我正在尝试添加一项功能,以便在我的应用程序中为我的博客添加评论。我试图通过 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。

4

2 回答 2

1

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

是的,你可能需要一个“nonce”。您可以在codex-page中阅读有关内容。但请记住,codex-page 是从 wordpress-plugin-developer 的角度编写的。

于 2013-10-25T22:15:16.560 回答
0

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

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

提示:如果您使用的是chrome,开发者工具中有一个工具可以帮助您以cUrl格式复制请求,这样您就可以看到所有发送到服务器的参数。 在此处输入图像描述

于 2013-10-23T16:04:39.890 回答