Perl Configuration for the Proxy
This article describes how to configure the Proxy Host with Basic Authentication in the Perl programming/scripting language for an HTTP client.
ProxyMesh also supports IP address authentication, for which you do not need to use a username and password. Instead, set the http_proxy environment variable to http://PROXYHOST:PORT.
Perl Library for the Web
Perl libraries are available through the CPAN (for " Comprehensive Perl Archive Network"). Among CPAN libraries for making HTTP requests, LWP (for "libwww-perl") is a popular choice. Included in LWP is an API to an HTTP client as well as a range of HTML utilities and standard objects to represent HTTP requests and responses.
#!/usr/bin/env perl
use strict;
use warnings;
use feature qw( say );
use LWP::UserAgent;
my$ua= LWP::UserAgent->new;
my@phases= (
'request_preprepare', 'request_prepare',
'request_send', 'response_header',
'response_data', 'response_done',
'response_redirect',
);
formy$phase(@phases) {
$ua->add_handler($phase = > sub { say "$phase"; return undef;});
}
$ua->get('http://example.com');
Proxy Attributes
The following methods are set up for requests to be passed through a proxy server.
env_proxy
$ua->env_proxy; must be called to load the environmental variable, as described at this link.
http_proxy
This is the environmental variable from which the proxy settings are loaded. The value should look like this: http://PROXYHOST:PORT
HTTP_PROXY is not honored for CGI scripts. Instead, you can use the CGI_HTTP_PROXY environment variable.
CSH or TCSH users should use the setenv command to define these environment variables.
proxy function
USERNAME:PASSWORD is unnecessary if using IP address authentication.
# For a single scheme:
$ua->proxy($scheme, $proxy_url)
$ua->proxy('http', 'http://PROXYHOST:PORT', proxyuserpwd: 'USERNAME:PASSWORD');
# To set multiple proxies at once:
$ua->proxy([
[ 'http', 'https' ] => 'http://PROXYHOST:PORT',
]);
Perl and libcurl
If you want to extend Perl with cURL/libcurl functionality, you can use WWW::Curl.
Perl and Selenium
Follow this link for information on using Perl with Selenium the automated web UI testing application.