bicepjai
bicepjai

Reputation: 1665

What is the reason for the error "Failed to decode JSON" in MediaWiki::API?

We have private MediaWiki installation inside our company. Based on daily builds on our source code, we update the wiki with Perforce labels so that people can use the build that is labeled for streamlined process. We tried to automate this using Perl scripts on a Windows server using MediaWiki::Bot and MediaWiki::API.

use MediaWiki::Bot;
use MediaWiki::API;

my $mw = MediaWiki::API->new();
$mw->{config}->{api_url} = 'http://somewiki/w/index.php/title#feature_List';

# log in to the wiki
$mw->login({
        lgname     => 'username',
        lgpassword => 'password'
          || die $mw->{error}->{code} . ': ' . $mw->{error}->{details};

          # get a list of articles in category
          my $articles = $mw->list({
                action  => 'query',
                list    => 'categorymembers',
                cmtitle => 'Category:Perl',
                cmlimit => 'max'
            }) || die $mw->{error}->{code} . ': ' . $mw->{error}->{details};

          # and print the article titles
          foreach (@{$articles}) {
            print "$_->{title}\n";
        }

Output:

2: Failed to decode JSON returned by http://vaporwiki/w/index.php/Executor#Execu
tor_Feature_List
Decoding Error:
malformed JSON string, neither array, object, number, string or atom, at charact
er offset 0 (before "<!DOCTYPE html PUBLI...") at C:/Perl/lib/MediaWiki/API.pm l
ine 398

Returned Data: <whole page data>

Upvotes: 0

Views: 923

Answers (1)

daxim
daxim

Reputation: 39158

The API URL is wrong. Try http://vaporwiki/w/api.php.

Upvotes: 5

Related Questions