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...

In reply to Re: make useragent follow redirects in post actions by arhuman
in thread make useragent follow redirects in post actions by Specimen

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.