Вопрос

Я работаю над модулем, который позволяет пользователям размещать комментарии в блоге, опубликованном на WordPress. Я посмотрел на источник HTML для формы Post-Comment, отображаемой в нижней части записи блога (оставьте раздел ответа). Используя это в качестве ссылки, я перевел его в 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. Может ли это быть проблемой настроек Post-A-комментариев (возможно, что-то может настроить оригинальный владелец блога)?
2. Как следует HttpClient Dirtra 302 код состояния? В конце концов, мне просто нужно уведомить пользователь успеха и неудачи и на самом деле не ответить на страницу комментариев.

Это было полезно?

Решение

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

Другие советы

Предполагая, что WP-Comments-Post.php существует, производственная площадка должна блокировать прямой доступ к WP-Comments-post.php, либо проверяя на http_referer и / или http_user_Agent. Проверьте .htaccess для производственной площадки.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top