MediaWiki :: API中出现"无法解码JSON"错误的原因是什么?

bic*_*jai 0 perl mediawiki wikipedia-api mediawiki-api

我们在公司内部安装了私人MediaWiki.基于我们源代码的每日构建,我们使用Perforce标签更新Wiki,以便人们可以使用标记为简化流程的构建.我们尝试使用MediaWiki :: BotMediaWiki :: API在Windows服务器上使用Perl脚本自动执行此操作.

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";
        }
Run Code Online (Sandbox Code Playgroud)

输出:

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>
Run Code Online (Sandbox Code Playgroud)

dax*_*xim 5

API URL是错误的.试试http://vaporwiki/w/api.php.

  • 这是MediaWiki的用户界面,但正如daxim所说,对于API访问,您必须使用API​​地址. (2认同)