우리 회사 내부에 개인 미디어 위키 설치가 있습니다. 우리 소스 코드의 일일 빌드를 기반으로 wiki를 Perforce 레이블로 업데이트하여 사람들이 간소화 된 프로세스 레이블이 붙은 빌드를 사용할 수 있도록합니다. 우리는 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?)이 아닌 관련 정보를 공개하지 않았기 때문에 설치 문제를 진단하기가 어렵습니다. Stack Overflow는 질문 당 하나의 주제가있을 때 가장 잘 작동하기 때문에 질문의 해당 부분을 삭제했지만 [개정판] (http://stackoverflow.com/posts/11217610/revisions)에서 계속 사용할 수 있습니다. 이 텍스트를 복사하고 [새로운 것을 열어 라] (http://stackoverflow.com/questions/ask), 올바르게 처리 할 수 있습니다. – daxim