KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I'm connecting to my AppEngine application using the Apache HttpComponents library. In order to authenticate my users, I need to pass an authentication token along to the application's login address ( http://myapp.appspot.com/_ah/login?auth=.. .) and grab a cookie from the header of the response. However, the login page responds with a redirect status code, and I don't know how to stop HttpClient from following the redirect, thus thwarting me from intercepting the cookie. Fwiw, the actual method I use to send the request is below. private void execute(HttpClient client, HttpRequestBase method) { // Set up an error handler BasicHttpResponse errorResponse = new BasicHttpResponse( new ProtocolVersion("HTTP_ERROR", 1, 1), 500, "ERROR"); try { // Call HttpClient execute client.execute(method, this.responseHandler); } catch (Exception e) { errorResponse.setReasonPhrase(e.getMessage()); try { this.responseHandler.handleResponse(errorResponse); } catch (Exception ex) { // log and/or handle } } } How would I stop the client from following the redirect? Thanks. Update : As per the solution below, I did the following after creating a DefaultHttpClient client (and before passing it to the execute method): if (!this.followRedirect) { client.setRedirectHandler(new RedirectHandler() { public URI getLocationURI(HttpResponse response, HttpContext context) throws ProtocolException { return null; } public boolean isRedirectRequested(HttpResponse response, HttpContext context) { return false; } }); } More verbose than it seems it needs to be, but not as difficult as I thou
Tags (comma-separated)
Save Edits
Cancel