我們在公司內部有私人MediaWiki安裝。根據我們的源代碼每日構建,我們使用Perforce標籤更新wiki,以便人們可以使用標記爲簡化流程的構建。我們嘗試使用MediaWiki::Bot和MediaWiki::API在Windows服務器上使用Perl腳本自動執行此操作。MediaWiki :: API中錯誤「無法解碼JSON」的原因是什麼?
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";
}
輸出:
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>
很難診斷您的安裝問題,因爲您忽略了揭示任何相關信息,甚至不包括您的Perl發行版(ActiveState Perl?)。 - 由於堆棧溢出在每個問題只有一個主題時效果最好,所以我刪除了這部分問題,它仍然可以從[revisions](http://stackoverflow.com/posts/11217610/revisions)中獲得。複製此文本並[打開一個新文件](http://stackoverflow.com/questions/ask),以便正確處理它。 – daxim