Author image Ralf S. Engelschall


HTTP::Request - Class encapsulating HTTP Requests


 require HTTP::Request;
 $request = new HTTP::Request GET => '';


HTTP::Request is a class encapsulating HTTP style requests, consisting of a request line, a MIME header, and optional content. Note that the LWP library also uses this HTTP style requests for non-HTTP protocols.

Instances of this class are usually passed to the request() method of an LWP::UserAgent object:

 $ua = new LWP::UserAgent;
 $request = new HTTP::Request GET => '';
 $response = $ua->request($request);


HTTP::Request is a subclass of HTTP::Message and therefore inherits its methods. The inherited methods are header(), push_header(), remove_header(), headers_as_string() and content(). See HTTP::Message for details.

$r = new HTTP::Request $method, $url, [$header, [$content]]

Constructs a new HTTP::Request object describing a request on the object $url using method $method. The $url argument can be either a string, or a reference to a URI::URL object. The $header argument should be a reference to a HTTP::Headers object.

 $request = new HTTP::Request GET => '';



These methods provide public access to the member variables containing respectively the method of the request and the URL object of the request.

If an argument is given the member variable is given that as its new value. If no argument is given the value is not touched. In either case the previous value is returned.

The url() method accept both a reference to a URI::URL object and a string as its argument. If a string is given, then it should be parseable as an absolute URL.


Method returning a textual representation of the request. Mainly useful for debugging purposes. It takes no arguments.