Hi Santos,

In the case of a redirect the server sets the response header 'location' to the value of the new page URI. This can be either a relative or absolute URI. You can process it using something like:

String url1 = "http://...";;
PostMethod httpPostMethod = new PostMethod(url1);
httpPostMethod.addParameter("...", "...");
httpClient.executeMethod(httpPostMethod);

if (**methodWasRedirected**) {

  URI redirectLocation = new URI(
    httpPostMethod.getURI(),
    httpPostMethod.getResponseHeader("location").getValue()
  );
  httpPostMethod = new PostMethod(redirectLocation);
  httpPostMethod.addParameter("...", "...");
  httpClient.executeMethod(httpPostMethod);
}

Mike


Santos wrote:
hi mike,

i understand you perfectly and what you said makes sense. the problem is
that, without followRedirects set to true, the URL I got from
httpPostMethod.getURI().toString() (httpPostMethod is an instance of
PostMethod) is the same as the one I pass to the PostMethod constructor
while creating httpPostMethod. In other words:

String url1 = "http://...";;
PostMethod httpPostMethod = new PostMethod(url1);
httpPostMethod.addParameter("...", "...");
httpClient.executeMethod(httpPostMethod);
String url2a = httpPostMethod.getURI().toString();

url1 is equal to url2, and I need to obtain the *redirected* url2.

Any tip?

Thank you again,
<[EMAIL PROTECTED] />

On Tue, 2003-08-26 at 18:49, Michael Becke wrote:

Hi Santos,

There's no way to make PostMethod automatically redirect, other than subclassing and overriding setFollowRedirects().

I question if this is what you want though. Generally a redirect on post indicates that the post succeeded and that the response is to be read from the redirected page. So you would perform a POST to http://somehost/form and be redirected to http://somehost/response. You would then want to do a GET on http://somehost/response.

In either case it is also possible to handle the redirect manually by checking the response code and getting the location header.

Mike

Santos wrote:


Hi all,

I writing to ask you if there's any chance to setFollowRedirects(true)
to an instance of PostMethod. I've read in the source that "Entity
enclosing requests cannot be redirected without user intervention", but
I really need a way to get around this limitation. I know that this is
probably due to the HTTP POST spec itself, but I need to invoke an HTTP
POST that performs redirection.

Thank you,
<[EMAIL PROTECTED] />




--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]






---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to