in reply to Re^2: pl script in webserver
in thread pl script in webserver

Funny that it loads there but not with JSON, did you have a "use JSON::XS;" statment already in the program you ran the last time? It seems you have both of them.

kcott had some good debug tips at Re: pl script in webserver. Besides those there could be an error in your input to decode; you could try this.

eval {$respons = JSON::XS->new->decode ($res->content);} ; print 'json decode error:'.$@ ."\n" if ($@);
Running the decode inside an eval will trap any "die", and $@ will contain the error you would have died with.

It is quite possible the error involves html encoding of data. This may fix that.

eval {$respons = JSON::XS->new->decode ($res->decoded_content);} ; print 'json decode error:'.$@ ."\n" if ($@);

it is quite possible that it is both html and UTF encoding problems. This would fix that

use Encode; eval {$respons = JSON::XS->new->decode (Encode::decode_utf8($res->deco +ded_content));}; print 'json decode error:'.$@ ."\n" if ($@);
If your web page came with proper utf settings, the content may already be marked with the utf flag and that may introduce its own error saying you cant decode data that is already marked utf. But i have gotten response content data that did not have the proper utf settings in the html before. This example came from code playing with the wordpress api.

Replies are listed 'Best First'.
Re^4: pl script in webserver
by bigup401 (Pilgrim) on Apr 08, 2017 at 23:41 UTC

    i tried it. and the code was working at my workstation before taking it to production. i dont expect to have any error in it. its just hosting i think. but even the hosting techs are like what. cant do anything. i would solve it if it was hosted on my space

    use JSON::XS; use HTTP::Request::Common qw(POST); my $ua = LWP::UserAgent->new( ssl_opts => { verify_hostname => 0 }, ); $ua->agent("MyApp/0.1") my $req = HTTP::Request->new(POST => 'https://link'); $req->content_type('application/json'); my $res = $ua->request($req); $respons = JSON::XS->new->decode ($res->content); $ju = $respons->{data}->{data}; $ke = $respons->{data}->{data}}; print "Content-type: text/html\n\n"; print <<START_HTML; #html code START_HTML

      You do realize there are too many right braces in

      $ke = $respons->{data}->{data}};

        yes but its single right braces