Comment puis-je récupérer les cookies à partir d'une requête POST?
Je peux envoyer des requêtes POST à l'aide org.apache.http.clien.HttpClient
et obtenir la réponse HTTP. Mais je n'obtiens pas le contenu HTML lorsque vous êtes connecté parce que mon script PHP nécessite un cookie. Alors, comment puis-je lire le cookie de la requête POST de réponse et renvoyez-le à l'aide d'une requête GET après la demande POST?
HttpClient httpClient = new DefaultHttpClient();
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("username", "user"));
nameValuePairs.add(new BasicNameValuePair("password", "passwd"));
HttpPost httpPost = new HttpPost("http://localhost/index.php");
httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse httpResponse = httpClient.execute(httpPost);
BufferedInputStream bis = new BufferedInputStream(httpResponse.getEntity().getContent()); //Just gets the HTML content, not the cookies
OriginalL'auteur Rox | 2012-04-28
Vous devez vous connecter pour publier un commentaire.
les cookies sont un en-tête standard, de sorte que vous pouvez obtenir à partir de
Si vous en appelant le serveur à partir de la même application, vous pouvez laisser le httpclient maintenir cookie état plutôt. Ne pas créer une nouvelle instance de tous les temps et cela devrait fonctionner.
Si vous avez besoin de décoder les cookies envoyés par le serveur, il est
httpResponse.getHeaders("Set-Cookie")
OriginalL'auteur Bruce Lowe
Si vous utilisez le même HTTPClient instance et que votre serveur est à envoyer les bons en-têtes, il devrait être traitée automatiquement.
Voir http://hc.apache.org/httpclient-3.x/cookies.html
OriginalL'auteur dfb