Hi Margaret, Sorry for not replying to your last message, I generally try to at least provide an I don't know but I'll ask the developers message to any HttpClient messages I see, guess this one got lost in the ether of my brain somewhere.
Actually, this looks like a case that I will have to pass on to the developers, but there are a few things that I can suggest that might help you find the problem and will definitely make the developers lives easier. If you could go through the suggestions at http://jakarta.apache.org/commons/httpclient/troubleshooting.html and provide whatever results you can that would be appreciated (the last couple of suggestions, using telnet and netcat probably aren't worth it at this stage). Particularly, the output of the wire trace would be useful, instructions are available at http://jakarta.apache.org/commons/httpclient/troubleshooting.html It would definitely be worth finding out if it works correctly without the proxy in the middle if that's at all possible. The results of a HEAD method on the exact URL that you are being redirected to might help as well. erm, possibly the site is wanting a referrer header? HttpClient doesn't provide one by default. It would be really good to see exactly what a browser sends in response to that behaviour so if you can access the url via http instead of https and use a packet sniffer that would help as well. If not, I may be able to simulate the server responses with netcat and the wire log from your attempts with HttpClient, so don't spend too much effort on acquiring a log of a browser logging in. That's about all I can come up with at the moment, if you can gather as much of that information as possible and hit me with it I'll see what I can track down for you. Adrian Sutton, Software Engineer Ephox Corporation www.ephox.com -----Original Message----- From: Ballard, Margaret [mailto:[EMAIL PROTECTED] Sent: Friday, 21 March 2003 12:50 AM To: Jakarta Commons Users List Subject: [httpclient] Problem with Post Redirect Hi, I posted this last week, and haven't received a reply. Trying it again with a more indicative Subject line. My problem is that I'm getting a status 405 "method not allowed" status even though the method I'm sending is a get method, and get is listed by the response as an allowed method. How I get to this point: I am going through a proxy using ssl. I post login information and then, after a successful login, am redirected to a new page. I know that followRedirects is disabled for post, so I find out where I'm being redirected to, and redirect myself by making a getmethod to the redirect url. Result is what I listed above; a 405 "Method not allowed" Status code. Again, am I missing a step? Is there another way to handle a post redirect? Code: public static void main(String[] args) throws Exception { HttpClient client = new HttpClient(); client.getHostConfiguration().setProxy("ourproxy", 8080); HttpState state = new HttpState(); state.setProxyCredentials("realm",new UsernamePasswordCredentials("proxyname","proxypassword")); client.setState(state); String _uri = " https://secure.planethome.de/myplanet/login.jsp"; GetMethod method = new GetMethod(_uri); int status = client.executeMethod(method); PostMethod postmethod = new PostMethod(_uri); // Add Request Body NameValuePair[] params = new NameValuePair[4]; params[0] = new NameValuePair("hidden", "yes"); params[1] = new NameValuePair("username", "username"); params[2] = new NameValuePair("password", "password"); params[3] = new NameValuePair("request", "login"); postmethod.setRequestBody(params); // Execute Post status = client.executeMethod(postmethod); // Returns a Status Code 100, so I resubmit postmethod.recycle(); status = client.executeMethod(postmethod); // This time, it returns a Status Code 302 Redirect, // so I find where it's redirecting to, and send a Get Header location = postmethod.getResponseHeader("Location"); String redirect = location.getValue(); GetMethod redirectmethod = new GetMethod(redirect); // Here's my problem - it returns a 405 Method not allowed // code. But Get is listed as an Allowed Method in the Response Header status = client.executeMethod(new GetMethod(redirect)); } Any help greatly appreciated!! Margaret Ballard
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
