http://qs1969.pair.com?node_id=59895


in reply to make useragent follow redirects in post actions


To answer to your question the RFC2616 says:

If the 301 status code is received in response to a request other than GET or HEAD, the user agent MUST NOT automatically redirect the request unless it can be confirmed by the user, since this might change the conditions under which the request was issued.
Note: When automatically redirecting a POST request after receiving a 301 status code, some existing HTTP/1.0 user agents will erroneously change it into a GET request.


For yor other question : You can make a new MyUa.pm redefining only redirect_ok (or modified UserAgent.pm, but it's dirty) to follow your rules.
#!/usr/bin/pl package MyUa; use LWP::UserAgent; @ISA = "LWP::UserAgent"; sub redirect_ok { # here depending on what you've decided # you return true to follow the redirect # or false to not follow # (we set up the return value depending on # other (previously set up) variable to achieve our goal) # # You can also set some variables here to to modify the way # you'll retrive the new pages elsewhere in your prog/in the LWP #(argh, dirty !) # to change POST to GET by example... } 1;

At the office we have configured 3 different behaviour for redirect on POST :

Strict RFC compliance->don't follow to new location.
'Rfc erroneous' mode->follow to new location but with a get (as the RFC say you shouldn't POST automatically to the new location.
Weird mode(but usefull)-> where we POST to the new location.

I must precise that ALL these modes are needed as we found, in real life, sites that needs one of these modes...