【发布时间】:2010-04-06 07:04:12
【问题描述】:
我正在开发一个模块,该模块允许用户在 Wordpress 上发布的博客上发布 cmets。我查看了显示在博客条目底部的 Post-Comment-Form 的 HTML 源代码(留下回复部分)。以此为参考,我使用DefaultHTTPClient 和BasicNameValuePairs 将其翻译成Java,我的代码如下所示:
DefaultHttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://xycabz.wordpress.com/wp-comments-post.php");
httppost.setHeader("Content-type","application/x-www-form-urlencoded;charset=UTF-8");
List<NameValuePair> nvps = new ArrayList<NameValuePair>();
nvps.add(new BasicNameValuePair("author","abc"));
nvps.add(new BasicNameValuePair("email","abz@xyc.com"));
nvps.add(new BasicNameValuePair("url",""));
nvps.add(new BasicNameValuePair("comment","entiendamonos?"));
nvps.add(new BasicNameValuePair("comment_post_ID","123"));
//this was a hidden field and always set to 0
nvps.add(new BasicNameValuePair("comment_parent","0"));
try {
httppost.setEntity(new UrlEncodedFormEntity(nvps));
} catch (UnsupportedEncodingException e1) {
e1.printStackTrace();
}
BasicResponseHandler handler = new BasicResponseHandler();
try {
Log.e("OUTPUT",httpclient.execute(httppost,handler));
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
我在使用此代码的日志中收到 HTTP 302 Found(重定向到临时位置)异常,我将其忽略。 (注意:通常,当您(在网页上)发表评论时,您会被带回包含所有 cmets 的博客页面。我在重定向中获得的 URL 是相同的)即使忽略此重定向,我也可以使用此代码在我的个人博客上发布 cmets,而不是在实际(生产)博客上。
问题:
1. 这可能是评论后设置问题(可能是原博客所有者设置的问题)?
2、HTTPClient应该如何处理302状态码?最终,我只需要通知用户成功和失败,而不是真正将他带到 cmets 页面。
【问题讨论】:
-
当您尝试发表评论时,在生产日志上发布发生的事情对您很有用。你有错误吗?你是说它似乎正确地发表了评论,但评论只是没有出现?
-
我在日志中获取/捕获一个 HttpResponseException: Found(HTTP 302 状态代码),这在 IMO 是正常的,但 cmets 没有出现在生产日志中。
标签: android wordpress httpwebrequest http-redirect