package FS::part_event::Action::http;
+use base qw( FS::part_event::Action );
use strict;
-use base qw( FS::part_event::Action );
+use vars qw( $me );
+use IO::Socket::SSL;
use LWP::UserAgent;
use HTTP::Request::Common;
-use JSON::XS;
+use Cpanel::JSON::XS;
use FS::Misc::DateTime qw( iso8601 );
+$me = '[FS::part_event::Action::http]';
+
#sub description { 'Send an HTTP or HTTPS GET or POST request'; }
sub description { 'Send an HTTP or HTTPS POST request'; }
type => 'textarea',
},
#'response_error_param' => 'Response error parameter',
+ 'debug' => { label => 'Enable debugging',
+ type => 'checkbox',
+ value => 1,
+ },
);
}
( $field, $value );
} split(/\n/, $self->option('content') );
+ if ( $self->option('debug') ) {
+ warn "[$me] $_: ". $content{$_}. "\n" foreach keys %content;
+ }
+
my $content = encode_json( \%content );
my @lwp_opts = ();
- push @lwp_opts, 'ssl_opts'=>{ 'verify_hostname'=>0 }
+ push @lwp_opts, 'ssl_opts' => {
+ verify_hostname => 0,
+ SSL_verify_mode => IO::Socket::SSL::SSL_VERIFY_NONE,
+ }
if $self->option('ssl_no_verify');
my $ua = LWP::UserAgent->new(@lwp_opts);
Content => $content,
);
+ if ( $self->option('debug') ) {
+ #XXX dump raw request for debugging
+ }
my $response = $ua->request($req);
die $response->status_line if $response->is_error;