Question

Je travaille sur un module qui permet aux utilisateurs de poster des commentaires sur un blog publié sur Wordpress. Je regardais la source HTML pour Post-commentaires-formulaire affiché au bas d'une entrée de blog (Laisser une section de réponse). En utilisant cela comme une référence, je l'ai traduit à Java en utilisant DefaultHTTPClient et BasicNameValuePairs et mon code ressemble à:

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();
}

Je reçois HTTP 302 Found (Rediriger à l'emplacement temporaire) des exceptions dans les journaux avec ce code, que je ne pas tenir compte. (Remarque: En règle générale, lorsque vous postez un commentaire (sur la page web) que vous revenez à la page de blog qui fait appel à tous les commentaires L'URL que je reçois dans les réoriente est le même.) Même après avoir ignoré cette redirection, je peux poster des commentaires sur mon blog personnel en utilisant ce code, mais pas sur le blog réel (production).

Questions: 1. Serait-ce un des paramètres post-un commentaire problème (peut-être quelque chose que le propriétaire du blog d'origine aurait pu mettre)?
2. Comment devrait HTTPClient gérer 302 code d'état? Finalement, je viens d'informer l'utilisateur du succès et l'échec et ne pas le prendre en fait à la page des commentaires.

Était-ce utile?

La solution

Vous pouvez vérifier gravatar, Akismet ou d'autres plugins liés à la création de commentaire pour les questions u. Essayez de vérifier la sortie en utilisant l'affiche et LiveHTTP-têtes des extensions dans Firefox pour le débogage du site de production

Autres conseils

En supposant wp-comments-Post.php existent, le site de production doit être bloquer l'accès direct à wp-comments-post.php soit par la vérification des HTTP_REFERER et / ou HTTP_USER_AGENT. Vérifiez le .htaccess pour le site de production.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top