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

Testing Use Commands:JSON::XS JSON::PP new to %INC from adding use JSON::XS; JSON/XS.pm => /usr/local/lib64/perl5/JSON/XS.pm Types/Serialiser.pm => /usr/local/share/perl5/Types/Serialiser.pm attributes.pm => /usr/share/perl5/attributes.pm common/sense.pm => /usr/local/share/perl5/common/sense.pm new to %INC from adding use JSON::PP; B.pm => /usr/lib64/perl5/B.pm Carp/Heavy.pm => /usr/share/perl5/Carp/Heavy.pm JSON/PP.pm => /usr/local/share/perl5/JSON/PP.pm List/Util.pm => /usr/lib64/perl5/List/Util.pm Scalar/Util.pm => /usr/lib64/perl5/Scalar/Util.pm bytes.pm => /usr/share/perl5/bytes.pm

Replies are listed 'Best First'.
Re^3: pl script in webserver
by huck (Prior) on Apr 08, 2017 at 22:22 UTC

    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.

      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}};

Re^3: pl script in webserver
by bigup401 (Pilgrim) on Apr 08, 2017 at 22:10 UTC

    thats wat i get