Публикация комментариев в WordPress-блоге в Android - PullRequest
3 голосов
/ 06 апреля 2010

Я работаю над модулем, который позволяет пользователям оставлять комментарии в блоге, опубликованном на 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? В конце концов, я просто должен уведомить пользователя об успехе и неудаче, а не перевести его на страницу комментариев.

Ответы [ 2 ]

1 голос
/ 13 апреля 2010

Предполагая, что wp-comments-post.php существует, производственный сайт должен блокировать прямой доступ к wp-comments-post.php путем проверки HTTP_REFERER и / или HTTP_USER_AGENT.Проверьте .htaccess для производственной площадки.

1 голос
/ 09 апреля 2010

Вы можете проверить наличие граватара, акисмета или некоторых других плагинов, связанных с комментариями, создающих проблемы для вас. Попробуйте проверить вывод с помощью расширений заголовков Poster и LiveHTTP в Firefox для отладки рабочего сайта

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...