Я работаю над модулем, который позволяет пользователям оставлять комментарии в блоге, опубликованном на Wordpress. Я просмотрел исходный HTML-код Post-Comment-Form, отображаемый в нижней части записи блога (раздел «Оставить комментарий»). Используя это в качестве ссылки, я перевел его на Java, используя DefaultHTTPClient
и BasicNameValuePairs
, и мой код выглядит так:
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
(Перенаправление во временное местоположение) исключения в журналах с этим кодом, которые я игнорирую. (Примечание. Обычно, когда вы публикуете комментарий (на веб-странице), вы возвращаетесь на страницу блога, которая включает все комментарии. URL-адрес, который я получаю в перенаправлениях, тот же) оставлять комментарии в моем личном блоге, используя этот код, но не в реальном (производственном) блоге.
Вопросы:
1. Может ли это быть проблемой настроек пост-комментария (возможно, что-то, что мог установить первоначальный владелец блога)?
2. Как HTTPClient должен обрабатывать код состояния 302? В конце концов, я просто должен уведомить пользователя об успехе и неудаче, а не перевести его на страницу комментариев.