J'ai besoin d'aide pour trouver comment obtenir la redirection après avoir fait un post sur le serveur. D'abord, je dois faire un get pour obtenir des cookies du serveur. Ensuite, je réalise un post avec les cookies et les paramètres supplémentaires. Le serveur répond alors avec une redirection 302. Comment puis-je obtenir l'URL pour cette redirection?Obtenir l'URL de redirection avec Java org.apache.http.client
coderessemble suit:
HttpGet get = new HttpGet(urlOne);
try {
//Creating a local instance of cookie store.
CookieStore cookieJar = new BasicCookieStore();
// Creating a local HTTP context
HttpContext localContext = new BasicHttpContext();
// Bind custom cookie store to the local context
localContext.setAttribute(ClientContext.COOKIE_STORE, cookieJar);
HttpResponse response = httpClient.execute(get, localContext);
HttpEntity entity = response.getEntity();
System.out.println("------------------GET----------------------");
System.out.println(response.getStatusLine());
if (entity != null) {
System.out.println("Response content length: " + entity.getContentLength());
}
// Print out cookies obtained from server
List<Cookie> cookies = cookieJar.getCookies();
for (int i = 0; i < cookies.size(); i++) {
System.out.println("Local cookie: " + cookies.get(i));
}
if (entity != null) {
entity.consumeContent();
}
System.out.println("------------------GET-END---------------------");
// Create a new post
HttpPost post = new HttpPost(urlTwo);
post.setHeader("Content-Type", "application/x-www-form-urlencoded");
// Add params
HttpParams params = new BasicHttpParams();
params.setParameter("action", "search");
params.setParameter("word", "hello");
post.setParams(params);
//Execute
HttpResponse response2 = httpClient.execute(post, localContext);
Est-ce HttpClient 3 ou 4? – skaffman
Celui utilisé dans Android. Je ne suis pas sûr de quelle version. – jakob