Hi,
I ran your code and got:
Bad header argument at 1185916.pl line 20.
... don't you?
Also, I believe the correct name for one of the HTTP headers you employ is 'Content-Type' (note capitalization)(edit: I was wrong about that, thx beech.)
... and the value of your 'Authorization' header looks like it might be missing some punctuation?
Edit: Also, the server at the URL in your code doesn't respond ...
Try something like the following, with your real URL, header value, etc. Note that HTTP::Tiny and JSON are both Perl core modules so you already have them installed.
#!/usr/bin/perl
use strict; use warnings;
use HTTP::Tiny;
use JSON;
use Data::Dumper;
my $url = "https://site.com/api/inforequests";
my $json = encode_json {
name => 'john',
country => 'ca',
email => 'john@email.com',
};
my $http = HTTP::Tiny->new(
default_headers => {
Authorization => 'Token xert345llkd736gdy3',
}
);
my $response = $http->post( $url => {
content => $json,
headers => { 'Content-Type' => 'application/json' },
});
if ( $response->{'is_success'} ) {
print Dumper( decode_json $response->{'content'} );
} else {
print "$response->{'status'} $response->{'reason'}\n";
}
__END__
Hope this helps!
The way forward always starts with a minimal test.
|