THRIFT-4348 - Allow custom HTTP headers to be set in Perl HTTP client.
Client: Perl

This closes #1376
diff --git a/lib/perl/lib/Thrift/HttpClient.pm b/lib/perl/lib/Thrift/HttpClient.pm
index 2ad618f..6e6a631 100644
--- a/lib/perl/lib/Thrift/HttpClient.pm
+++ b/lib/perl/lib/Thrift/HttpClient.pm
@@ -45,6 +45,7 @@
         out          => $out,
         timeout      => 100,
         handle       => undef,
+        headers      => {},
     };
 
     return bless($self,$classname);
@@ -74,6 +75,14 @@
     $self->setTimeout($timeout);
 }
 
+sub setHeader
+{
+    my $self = shift;
+    my ($name, $value) = @_;
+
+    $self->{headers}->{$name} = $value;
+}
+
 #
 # Tests whether this is open
 #
@@ -176,6 +185,7 @@
     my $buf = join('', <$out>);
 
     my $request = new HTTP::Request(POST => $self->{url}, undef, $buf);
+    map { $request->header($_ => $self->{headers}->{$_}) } keys %{$self->{headers}};
     my $response = $ua->request($request);
     my $content_ref = $response->content_ref;