Often I need to issue web hit from a perl code, and re-inventing the wheel with LWP::UserAgent or WWW::Curl::Easy sometimes is too overdose for me. That’s why I decided to write some semi-universal function called “web_hit()” which could be easily used for issuing web hits.
Important notices:
- The function always generates POST requests
- The arguments which are accepted are as follows:
- URL – this must be the first argument
- POST_DATA – this must be the second argument, and could be reference to a HASH. The keys of the hash will be used as variable names, and the values as values.
- \$result – Reference to a result variable, where you will get back the results
Here is the definition itself:
web_hit() definition
# --- # web_hit() - Function for issuing POST hit to URL with given parameters # sub web_hit { # --- use LWP::UserAgent; my $url = shift; my $post_data = shift; my $result = shift; my $ua = new LWP::UserAgent; my $response = $ua->post($url,$post_data); my $content = $response->content; my $return_code = $response->code; # If we have $result provided, update it $$result{content} = $content if defined $result; $$result{return_code} = $return_code if defined $result; return 1; } # END web_hit()
The usage is pretty straight-forward, here are some examples:
my %temp_result; my $URL="http://example.com"; use Data::Dumper; if (! web_hit($URL,{},\%temp_result) ){ print "Error issuing web hit to $URL\n"; } else { print Dumper (%temp_result); }