in reply to
Getting error while decoding JSON object via POST method
Here is an example of a CGI script that accepts JSON via HTTP POST, reads two numbers "a" and "b" from the input, and adds them together returning "c", plus an example client that uses the script...
#!/usr/bin/env perl
use strict;
use warnings;
use CGI ();
use JSON ();
my $q = CGI->new;
my $json = JSON->new->utf8;
my $input = $json->decode( $q->param('POSTDATA') );
my $a = $input->{a};
my $b = $input->{b};
my $c = $a + $b;
print $q->header("application/json");
print $json->encode({ c => $c });
#!/usr/bin/env perl
use strict;
use warnings;
use JSON ();
use LWP::UserAgent ();
use HTTP::Request::Common qw( POST );
my $data = { a => 40, b => 2 };
my $json = JSON->new->utf8;
my $ua = LWP::UserAgent->new;
my $req = POST(
"http://buzzword.org.uk/2013/json-addition.cgi",
Content_Type => 'application/json',
Content => $json->encode($data),
);
my $result = $json->decode( $ua->request($req)->decoded_content );
print $result->{c}, "\n";
package Cow { use Moo; has name => (is => 'lazy', default => sub { 'Mooington' }) } say Cow->new->name