Je travaille sur un module qui permet aux utilisateurs de poster des commentaires sur un blog publié sur Wordpress. J'ai regardé la source HTML pour Post-Comment-Form affiché au bas d'une entrée de blog (section Leave a Reply). En utilisant cela comme une référence, je l'ai traduit à Java en utilisant DefaultHTTPClient
et BasicNameValuePairs
et mon code ressemble à:Poster des commentaires sur un blog wordpress dans Android
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","[email protected]"));
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: Habituellement, lorsque vous postez un commentaire (sur la page Web), vous êtes redirigé vers la page du blog qui contient tous les commentaires.) L'URL que je reçois dans les redirections est la même) Même après avoir ignoré cette redirection poster des commentaires sur mon blog personnel en utilisant ce code mais pas sur le blog (production) actuel.
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 HTTPClient doit-il gérer le code d'état 302? Finalement, je dois juste informer l'utilisateur du succès et de l'échec et ne pas l'emmener à la page des commentaires.
Il vous serait utile de publier ce qui se passe dans le journal de production lorsque vous essayez de publier le commentaire. Avez-vous une erreur? Voulez-vous dire qu'il semble afficher le commentaire correctement, mais le commentaire n'apparaît tout simplement pas? – synic
Je reçois/attrape une exception HttpResponseException: Trouvé (code d'état HTTP 302) dans les journaux, lequel IMO est normal, mais les commentaires n'apparaissent pas dans les journaux de production. – Samuh