1LWP::UserAgent(3)     User Contributed Perl Documentation    LWP::UserAgent(3)
2
3
4

NAME

6       LWP::UserAgent - Web user agent class
7

SYNOPSIS

9        require LWP::UserAgent;
10
11        my $ua = LWP::UserAgent->new;
12        $ua->timeout(10);
13        $ua->env_proxy;
14
15        my $response = $ua->get('http://search.cpan.org/');
16
17        if ($response->is_success) {
18            print $response->decoded_content;  # or whatever
19        }
20        else {
21            die $response->status_line;
22        }
23

DESCRIPTION

25       The "LWP::UserAgent" is a class implementing a web user agent.
26       "LWP::UserAgent" objects can be used to dispatch web requests.
27
28       In normal use the application creates an "LWP::UserAgent" object, and
29       then configures it with values for timeouts, proxies, name, etc. It
30       then creates an instance of "HTTP::Request" for the request that needs
31       to be performed. This request is then passed to one of the request
32       method the UserAgent, which dispatches it using the relevant protocol,
33       and returns a "HTTP::Response" object.  There are convenience methods
34       for sending the most common request types: get(), head() and post().
35       When using these methods then the creation of the request object is
36       hidden as shown in the synopsis above.
37
38       The basic approach of the library is to use HTTP style communication
39       for all protocol schemes.  This means that you will construct
40       "HTTP::Request" objects and receive "HTTP::Response" objects even for
41       non-HTTP resources like gopher and ftp.  In order to achieve even more
42       similarity to HTTP style communications, gopher menus and file
43       directories are converted to HTML documents.
44

CONSTRUCTOR METHODS

46       The following constructor methods are available:
47
48       $ua = LWP::UserAgent->new( %options )
49           This method constructs a new "LWP::UserAgent" object and returns
50           it.  Key/value pair arguments may be provided to set up the initial
51           state.  The following options correspond to attribute methods
52           described below:
53
54              KEY                     DEFAULT
55              -----------             --------------------
56              agent                   "libwww-perl/#.###"
57              from                    undef
58              conn_cache              undef
59              cookie_jar              undef
60              default_headers         HTTP::Headers->new
61              max_size                undef
62              max_redirect            7
63              parse_head              1
64              protocols_allowed       undef
65              protocols_forbidden     undef
66              requests_redirectable   ['GET', 'HEAD']
67              timeout                 180
68
69           The following additional options are also accepted: If the
70           "env_proxy" option is passed in with a TRUE value, then proxy
71           settings are read from environment variables (see env_proxy()
72           method below).  If the "keep_alive" option is passed in, then a
73           "LWP::ConnCache" is set up (see conn_cache() method below).  The
74           "keep_alive" value is passed on as the "total_capacity" for the
75           connection cache.
76
77       $ua->clone
78           Returns a copy of the LWP::UserAgent object.
79

ATTRIBUTES

81       The settings of the configuration attributes modify the behaviour of
82       the "LWP::UserAgent" when it dispatches requests.  Most of these can
83       also be initialized by options passed to the constructor method.
84
85       The following attribute methods are provided.  The attribute value is
86       left unchanged if no argument is given.  The return value from each
87       method is the old attribute value.
88
89       $ua->agent
90       $ua->agent( $product_id )
91           Get/set the product token that is used to identify the user agent
92           on the network.  The agent value is sent as the "User-Agent" header
93           in the requests.  The default is the string returned by the
94           _agent() method (see below).
95
96           If the $product_id ends with space then the _agent() string is
97           appended to it.
98
99           The user agent string should be one or more simple product
100           identifiers with an optional version number separated by the "/"
101           character.  Examples are:
102
103             $ua->agent('Checkbot/0.4 ' . $ua->_agent);
104             $ua->agent('Checkbot/0.4 ');    # same as above
105             $ua->agent('Mozilla/5.0');
106             $ua->agent("");                 # don't identify
107
108       $ua->_agent
109           Returns the default agent identifier.  This is a string of the form
110           "libwww-perl/#.###", where "#.###" is substituted with the version
111           number of this library.
112
113       $ua->from
114       $ua->from( $email_address )
115           Get/set the e-mail address for the human user who controls the
116           requesting user agent.  The address should be machine-usable, as
117           defined in RFC 822.  The "from" value is send as the "From" header
118           in the requests.  Example:
119
120             $ua->from('gaas@cpan.org');
121
122           The default is to not send a "From" header.  See the
123           default_headers() method for the more general interface that allow
124           any header to be defaulted.
125
126       $ua->cookie_jar
127       $ua->cookie_jar( $cookie_jar_obj )
128           Get/set the cookie jar object to use.  The only requirement is that
129           the cookie jar object must implement the extract_cookies($request)
130           and add_cookie_header($response) methods.  These methods will then
131           be invoked by the user agent as requests are sent and responses are
132           received.  Normally this will be a "HTTP::Cookies" object or some
133           subclass.
134
135           The default is to have no cookie_jar, i.e. never automatically add
136           "Cookie" headers to the requests.
137
138           Shortcut: If a reference to a plain hash is passed in as the
139           $cookie_jar_object, then it is replaced with an instance of
140           "HTTP::Cookies" that is initialized based on the hash.  This form
141           also automatically loads the "HTTP::Cookies" module.  It means
142           that:
143
144             $ua->cookie_jar({ file => "$ENV{HOME}/.cookies.txt" });
145
146           is really just a shortcut for:
147
148             require HTTP::Cookies;
149             $ua->cookie_jar(HTTP::Cookies->new(file => "$ENV{HOME}/.cookies.txt"));
150
151       $ua->default_headers
152       $ua->default_headers( $headers_obj )
153           Get/set the headers object that will provide default header values
154           for any requests sent.  By default this will be an empty
155           "HTTP::Headers" object.
156
157       $ua->default_header( $field )
158       $ua->default_header( $field => $value )
159           This is just a short-cut for $ua->default_headers->header( $field
160           => $value ). Example:
161
162             $ua->default_header('Accept-Encoding' => scalar HTTP::Message::decodable());
163             $ua->default_header('Accept-Language' => "no, en");
164
165       $ua->conn_cache
166       $ua->conn_cache( $cache_obj )
167           Get/set the "LWP::ConnCache" object to use.  See LWP::ConnCache for
168           details.
169
170       $ua->credentials( $netloc, $realm )
171       $ua->credentials( $netloc, $realm, $uname, $pass )
172           Get/set the user name and password to be used for a realm.
173
174           The $netloc is a string of the form "<host>:<port>".  The username
175           and password will only be passed to this server.  Example:
176
177             $ua->credentials("www.example.com:80", "Some Realm", "foo", "secret");
178
179       $ua->max_size
180       $ua->max_size( $bytes )
181           Get/set the size limit for response content.  The default is
182           "undef", which means that there is no limit.  If the returned
183           response content is only partial, because the size limit was
184           exceeded, then a "Client-Aborted" header will be added to the
185           response.  The content might end up longer than "max_size" as we
186           abort once appending a chunk of data makes the length exceed the
187           limit.  The "Content-Length" header, if present, will indicate the
188           length of the full content and will normally not be the same as
189           "length($res->content)".
190
191       $ua->max_redirect
192       $ua->max_redirect( $n )
193           This reads or sets the object's limit of how many times it will
194           obey redirection responses in a given request cycle.
195
196           By default, the value is 7. This means that if you call request()
197           method and the response is a redirect elsewhere which is in turn a
198           redirect, and so on seven times, then LWP gives up after that
199           seventh request.
200
201       $ua->parse_head
202       $ua->parse_head( $boolean )
203           Get/set a value indicating whether we should initialize response
204           headers from the <head> section of HTML documents. The default is
205           TRUE.  Do not turn this off, unless you know what you are doing.
206
207       $ua->protocols_allowed
208       $ua->protocols_allowed( \@protocols )
209           This reads (or sets) this user agent's list of protocols that the
210           request methods will exclusively allow.  The protocol names are
211           case insensitive.
212
213           For example: "$ua->protocols_allowed( [ 'http', 'https'] );" means
214           that this user agent will allow only those protocols, and attempts
215           to use this user agent to access URLs with any other schemes (like
216           "ftp://...") will result in a 500 error.
217
218           To delete the list, call: "$ua->protocols_allowed(undef)"
219
220           By default, an object has neither a "protocols_allowed" list, nor a
221           "protocols_forbidden" list.
222
223           Note that having a "protocols_allowed" list causes any
224           "protocols_forbidden" list to be ignored.
225
226       $ua->protocols_forbidden
227       $ua->protocols_forbidden( \@protocols )
228           This reads (or sets) this user agent's list of protocols that the
229           request method will not allow. The protocol names are case
230           insensitive.
231
232           For example: "$ua->protocols_forbidden( [ 'file', 'mailto'] );"
233           means that this user agent will not allow those protocols, and
234           attempts to use this user agent to access URLs with those schemes
235           will result in a 500 error.
236
237           To delete the list, call: "$ua->protocols_forbidden(undef)"
238
239       $ua->requests_redirectable
240       $ua->requests_redirectable( \@requests )
241           This reads or sets the object's list of request names that
242           "$ua->redirect_ok(...)" will allow redirection for.  By default,
243           this is "['GET', 'HEAD']", as per RFC 2616.  To change to include
244           'POST', consider:
245
246              push @{ $ua->requests_redirectable }, 'POST';
247
248       $ua->show_progress
249       $ua->show_progress( $boolean )
250           Get/set a value indicating whether a progress bar should be
251           displayed on on the terminal as requests are processed. The default
252           is FALSE.
253
254       $ua->timeout
255       $ua->timeout( $secs )
256           Get/set the timeout value in seconds. The default timeout() value
257           is 180 seconds, i.e. 3 minutes.
258
259           The requests is aborted if no activity on the connection to the
260           server is observed for "timeout" seconds.  This means that the time
261           it takes for the complete transaction and the request() method to
262           actually return might be longer.
263
264       $ua->ssl_opts
265       $ua->ssl_opts( $key )
266       $ua->ssl_opts( $key => $value )
267           Get/set the options for SSL connections.  Without argument return
268           the list of options keys currently set.  With a single argument
269           return the current value for the given option.  With 2 arguments
270           set the option value and return the old.  Setting an option to the
271           value "undef" removes this option.
272
273           The options that LWP relates to are:
274
275           "verify_hostname" => $bool
276               When TRUE LWP will for secure protocol schemes ensure it
277               connects to servers that have a valid certificate matching the
278               expected hostname.  If FALSE no checks are made and you can't
279               be sure that you communicate with the expected peer.  The no
280               checks behaviour was the default for libwww-perl-5.837 and
281               earlier releases.
282
283               This option is initialized from the
284               PERL_LWP_SSL_VERIFY_HOSTNAME environment variable.  If this
285               envirionment variable isn't set; then "verify_hostname"
286               defaults to 0.
287
288           "SSL_ca_file" => $path
289               The path to a file containing Certificate Authority
290               certificates.  A default setting for this option is provided by
291               checking the environment variables "PERL_LWP_SSL_CA_FILE" and
292               "HTTPS_CA_FILE" in order. Last resort value is built-in value
293               /etc/pki/tls/certs/ca-bundle.crt.
294
295           "SSL_ca_path" => $path
296               The path to a directory containing files containing Certificate
297               Authority certificates.  A default setting for this option is
298               provided by checking the environment variables
299               "PERL_LWP_SSL_CA_PATH" and "HTTPS_CA_DIR" in order.
300
301           Other options can be set and are processed directly by the SSL
302           Socket implementation in use.  See IO::Socket::SSL or Net::SSL for
303           details.
304
305           SSL Socket implementation can be selected by environment variable
306           "PERL_NET_HTTPS_SSL_SOCKET_CLASS". IO::Socket::SSL is preferred by
307           default.
308
309   Proxy attributes
310       The following methods set up when requests should be passed via a proxy
311       server.
312
313       $ua->proxy(\@schemes, $proxy_url)
314       $ua->proxy($scheme, $proxy_url)
315           Set/retrieve proxy URL for a scheme:
316
317            $ua->proxy(['http', 'ftp'], 'http://proxy.sn.no:8001/');
318            $ua->proxy('gopher', 'http://proxy.sn.no:8001/');
319
320           The first form specifies that the URL is to be used for proxying of
321           access methods listed in the list in the first method argument,
322           i.e. 'http' and 'ftp'.
323
324           The second form shows a shorthand form for specifying proxy URL for
325           a single access scheme.
326
327       $ua->no_proxy( $domain, ... )
328           Do not proxy requests to the given domains.  Calling no_proxy
329           without any domains clears the list of domains. Eg:
330
331            $ua->no_proxy('localhost', 'example.com');
332
333       $ua->env_proxy
334           Load proxy settings from *_proxy environment variables.  You might
335           specify proxies like this (sh-syntax):
336
337             gopher_proxy=http://proxy.my.place/
338             wais_proxy=http://proxy.my.place/
339             no_proxy="localhost,example.com"
340             export gopher_proxy wais_proxy no_proxy
341
342           csh or tcsh users should use the "setenv" command to define these
343           environment variables.
344
345           On systems with case insensitive environment variables there exists
346           a name clash between the CGI environment variables and the
347           "HTTP_PROXY" environment variable normally picked up by
348           env_proxy().  Because of this "HTTP_PROXY" is not honored for CGI
349           scripts.  The "CGI_HTTP_PROXY" environment variable can be used
350           instead.
351
352   Handlers
353       Handlers are code that injected at various phases during the processing
354       of requests.  The following methods are provided to manage the active
355       handlers:
356
357       $ua->add_handler( $phase => \&cb, %matchspec )
358           Add handler to be invoked in the given processing phase.  For how
359           to specify %matchspec see "Matching" in HTTP::Config.
360
361           The possible values $phase and the corresponding callback
362           signatures are:
363
364           request_preprepare => sub { my($request, $ua, $h) = @_; ... }
365               The handler is called before the "request_prepare" and other
366               standard initialization of of the request.  This can be used to
367               set up headers and attributes that the "request_prepare"
368               handler depends on.  Proxy initialization should take place
369               here; but in general don't register handlers for this phase.
370
371           request_prepare => sub { my($request, $ua, $h) = @_; ... }
372               The handler is called before the request is sent and can modify
373               the request any way it see fit.  This can for instance be used
374               to add certain headers to specific requests.
375
376               The method can assign a new request object to $_[0] to replace
377               the request that is sent fully.
378
379               The return value from the callback is ignored.  If an
380               exceptions is raised it will abort the request and make the
381               request method return a "400 Bad request" response.
382
383           request_send => sub { my($request, $ua, $h) = @_; ... }
384               This handler get a chance of handling requests before it's sent
385               to the protocol handlers.  It should return an HTTP::Response
386               object if it wishes to terminate the processing; otherwise it
387               should return nothing.
388
389               The "response_header" and "response_data" handlers will not be
390               invoked for this response, but the "response_done" will be.
391
392           response_header => sub { my($response, $ua, $h) = @_; ... }
393               This handler is called right after the response headers have
394               been received, but before any content data.  The handler might
395               set up handlers for data and might croak to abort the request.
396
397               The handler might set the $response->{default_add_content}
398               value to control if any received data should be added to the
399               response object directly.  This will initially be false if the
400               $ua->request() method was called with a ':content_filename' or
401               ':content_callbak' argument; otherwise true.
402
403           response_data => sub { my($response, $ua, $h, $data) = @_; ... }
404               This handlers is called for each chunk of data received for the
405               response.  The handler might croak to abort the request.
406
407               This handler need to return a TRUE value to be called again for
408               subsequent chunks for the same request.
409
410           response_done => sub { my($response, $ua, $h) = @_; ... }
411               The handler is called after the response has been fully
412               received, but before any redirect handling is attempted.  The
413               handler can be used to extract information or modify the
414               response.
415
416           response_redirect => sub { my($response, $ua, $h) = @_; ... }
417               The handler is called in $ua->request after "response_done".
418               If the handler return an HTTP::Request object we'll start over
419               with processing this request instead.
420
421       $ua->remove_handler( undef, %matchspec )
422       $ua->remove_handler( $phase, %matchspec )
423           Remove handlers that match the given %matchspec.  If $phase is not
424           provided remove handlers from all phases.
425
426           Be careful as calling this function with %matchspec that is not not
427           specific enough can remove handlers not owned by you.  It's
428           probably better to use the set_my_handler() method instead.
429
430           The removed handlers are returned.
431
432       $ua->set_my_handler( $phase, $cb, %matchspec )
433           Set handlers private to the executing subroutine.  Works by
434           defaulting an "owner" field to the %matchhspec that holds the name
435           of the called subroutine.  You might pass an explicit "owner" to
436           override this.
437
438           If $cb is passed as "undef", remove the handler.
439
440       $ua->get_my_handler( $phase, %matchspec )
441       $ua->get_my_handler( $phase, %matchspec, $init )
442           Will retrieve the matching handler as hash ref.
443
444           If $init is passed passed as a TRUE value, create and add the
445           handler if it's not found.  If $init is a subroutine reference,
446           then it's called with the created handler hash as argument.  This
447           sub might populate the hash with extra fields; especially the
448           callback.  If $init is a hash reference, merge the hashes.
449
450       $ua->handlers( $phase, $request )
451       $ua->handlers( $phase, $response )
452           Returns the handlers that apply to the given request or response at
453           the given processing phase.
454

REQUEST METHODS

456       The methods described in this section are used to dispatch requests via
457       the user agent.  The following request methods are provided:
458
459       $ua->get( $url )
460       $ua->get( $url , $field_name => $value, ... )
461           This method will dispatch a "GET" request on the given $url.
462           Further arguments can be given to initialize the headers of the
463           request. These are given as separate name/value pairs.  The return
464           value is a response object.  See HTTP::Response for a description
465           of the interface it provides.
466
467           There will still be a response object returned when LWP can't
468           connect to the server specified in the URL or when other failures
469           in protocol handlers occur.  These internal responses use the
470           standard HTTP status codes, so the responses can't be
471           differentiated by testing the response status code alone.  Error
472           responses that LWP generates internally will have the "Client-
473           Warning" header set to the value "Internal response".  If you need
474           to differentiate these internal responses from responses that a
475           remote server actually generates, you need to test this header
476           value.
477
478           Fields names that start with ":" are special.  These will not
479           initialize headers of the request but will determine how the
480           response content is treated.  The following special field names are
481           recognized:
482
483               :content_file   => $filename
484               :content_cb     => \&callback
485               :read_size_hint => $bytes
486
487           If a $filename is provided with the ":content_file" option, then
488           the response content will be saved here instead of in the response
489           object.  If a callback is provided with the ":content_cb" option
490           then this function will be called for each chunk of the response
491           content as it is received from the server.  If neither of these
492           options are given, then the response content will accumulate in the
493           response object itself.  This might not be suitable for very large
494           response bodies.  Only one of ":content_file" or ":content_cb" can
495           be specified.  The content of unsuccessful responses will always
496           accumulate in the response object itself, regardless of the
497           ":content_file" or ":content_cb" options passed in.
498
499           The ":read_size_hint" option is passed to the protocol module which
500           will try to read data from the server in chunks of this size.  A
501           smaller value for the ":read_size_hint" will result in a higher
502           number of callback invocations.
503
504           The callback function is called with 3 arguments: a chunk of data,
505           a reference to the response object, and a reference to the protocol
506           object.  The callback can abort the request by invoking die().  The
507           exception message will show up as the "X-Died" header field in the
508           response returned by the get() function.
509
510       $ua->head( $url )
511       $ua->head( $url , $field_name => $value, ... )
512           This method will dispatch a "HEAD" request on the given $url.
513           Otherwise it works like the get() method described above.
514
515       $ua->post( $url, \%form )
516       $ua->post( $url, \@form )
517       $ua->post( $url, \%form, $field_name => $value, ... )
518       $ua->post( $url, $field_name => $value,... Content => \%form )
519       $ua->post( $url, $field_name => $value,... Content => \@form )
520       $ua->post( $url, $field_name => $value,... Content => $content )
521           This method will dispatch a "POST" request on the given $url, with
522           %form or @form providing the key/value pairs for the fill-in form
523           content. Additional headers and content options are the same as for
524           the get() method.
525
526           This method will use the POST() function from
527           "HTTP::Request::Common" to build the request.  See
528           HTTP::Request::Common for a details on how to pass form content and
529           other advanced features.
530
531       $ua->mirror( $url, $filename )
532           This method will get the document identified by $url and store it
533           in file called $filename.  If the file already exists, then the
534           request will contain an "If-Modified-Since" header matching the
535           modification time of the file.  If the document on the server has
536           not changed since this time, then nothing happens.  If the document
537           has been updated, it will be downloaded again.  The modification
538           time of the file will be forced to match that of the server.
539
540           The return value is the the response object.
541
542       $ua->request( $request )
543       $ua->request( $request, $content_file )
544       $ua->request( $request, $content_cb )
545       $ua->request( $request, $content_cb, $read_size_hint )
546           This method will dispatch the given $request object.  Normally this
547           will be an instance of the "HTTP::Request" class, but any object
548           with a similar interface will do.  The return value is a response
549           object.  See HTTP::Request and HTTP::Response for a description of
550           the interface provided by these classes.
551
552           The request() method will process redirects and authentication
553           responses transparently.  This means that it may actually send
554           several simple requests via the simple_request() method described
555           below.
556
557           The request methods described above; get(), head(), post() and
558           mirror(), will all dispatch the request they build via this method.
559           They are convenience methods that simply hides the creation of the
560           request object for you.
561
562           The $content_file, $content_cb and $read_size_hint all correspond
563           to options described with the get() method above.
564
565           You are allowed to use a CODE reference as "content" in the request
566           object passed in.  The "content" function should return the content
567           when called.  The content can be returned in chunks.  The content
568           function will be invoked repeatedly until it return an empty string
569           to signal that there is no more content.
570
571       $ua->simple_request( $request )
572       $ua->simple_request( $request, $content_file )
573       $ua->simple_request( $request, $content_cb )
574       $ua->simple_request( $request, $content_cb, $read_size_hint )
575           This method dispatches a single request and returns the response
576           received.  Arguments are the same as for request() described above.
577
578           The difference from request() is that simple_request() will not try
579           to handle redirects or authentication responses.  The request()
580           method will in fact invoke this method for each simple request it
581           sends.
582
583       $ua->is_protocol_supported( $scheme )
584           You can use this method to test whether this user agent object
585           supports the specified "scheme".  (The "scheme" might be a string
586           (like 'http' or 'ftp') or it might be an URI object reference.)
587
588           Whether a scheme is supported, is determined by the user agent's
589           "protocols_allowed" or "protocols_forbidden" lists (if any), and by
590           the capabilities of LWP.  I.e., this will return TRUE only if LWP
591           supports this protocol and it's permitted for this particular
592           object.
593
594   Callback methods
595       The following methods will be invoked as requests are processed. These
596       methods are documented here because subclasses of "LWP::UserAgent"
597       might want to override their behaviour.
598
599       $ua->prepare_request( $request )
600           This method is invoked by simple_request().  Its task is to modify
601           the given $request object by setting up various headers based on
602           the attributes of the user agent. The return value should normally
603           be the $request object passed in.  If a different request object is
604           returned it will be the one actually processed.
605
606           The headers affected by the base implementation are; "User-Agent",
607           "From", "Range" and "Cookie".
608
609       $ua->redirect_ok( $prospective_request, $response )
610           This method is called by request() before it tries to follow a
611           redirection to the request in $response.  This should return a TRUE
612           value if this redirection is permissible.  The $prospective_request
613           will be the request to be sent if this method returns TRUE.
614
615           The base implementation will return FALSE unless the method is in
616           the object's "requests_redirectable" list, FALSE if the proposed
617           redirection is to a "file://..."  URL, and TRUE otherwise.
618
619       $ua->get_basic_credentials( $realm, $uri, $isproxy )
620           This is called by request() to retrieve credentials for documents
621           protected by Basic or Digest Authentication.  The arguments passed
622           in is the $realm provided by the server, the $uri requested and a
623           boolean flag to indicate if this is authentication against a proxy
624           server.
625
626           The method should return a username and password.  It should return
627           an empty list to abort the authentication resolution attempt.
628           Subclasses can override this method to prompt the user for the
629           information. An example of this can be found in "lwp-request"
630           program distributed with this library.
631
632           The base implementation simply checks a set of pre-stored member
633           variables, set up with the credentials() method.
634
635       $ua->progress( $status, $request_or_response )
636           This is called frequently as the response is received regardless of
637           how the content is processed.  The method is called with $status
638           "begin" at the start of processing the request and with $state
639           "end" before the request method returns.  In between these $status
640           will be the fraction of the response currently received or the
641           string "tick" if the fraction can't be calculated.
642
643           When $status is "begin" the second argument is the request object,
644           otherwise it is the response object.
645

SEE ALSO

647       See LWP for a complete overview of libwww-perl5.  See lwpcook and the
648       scripts lwp-request and lwp-download for examples of usage.
649
650       See HTTP::Request and HTTP::Response for a description of the message
651       objects dispatched and received.  See HTTP::Request::Common and
652       HTML::Form for other ways to build request objects.
653
654       See WWW::Mechanize and WWW::Search for examples of more specialized
655       user agents based on "LWP::UserAgent".
656
658       Copyright 1995-2009 Gisle Aas.
659
660       This library is free software; you can redistribute it and/or modify it
661       under the same terms as Perl itself.
662
663
664
665perl v5.10.1                      2017-03-22                 LWP::UserAgent(3)
Impressum