L
LumovAn
Имеется следующая процедура на Perl:
Переменные: $api -> объект MediaWiki::API, вызываемый из основной программы, $name -> название файла в формате MediaWiki, $url -> адрес файла для получения его содержимого, $sum -> описание файла для системы контроля версий, $reupload -> если определено, позволяет перезаписывать имеющийся файл.
При вызове процедуры отдает: "HTTP::Message content must be bytes at /usr/local/share/perl/5.10.0/HTTP/Request/Common.pm line 91".
Как это можно исправить?
Код:
sub up_file {
my ($api, $name, $url, $sum, $reupload) = @_;
my $res = $api->api({
action => 'query',
prop => 'info',
titles => $name
}) || return $api->{error}->{details};
my $missing = exists((values %{$res->{query}->{pages}})[0]->{missing});
my $ua = LWP::UserAgent->new( timeout => 25 );
my $response = $ua->get($url);
$response = $response->decoded_content if($response->is_success());
if((!$missing && $reupload) || $missing) {
$api->edit({
action => 'upload',
filename => $name,
comment => $sum,
text => $sum,
file => $response,
ignorewarnings => 1
}) || return 'Error with upload file ' . $name . ': ' . $api->{error}->{details};
return 'done';
}
return 'File ' . $name . ' exist and $reupload is undefined';
}
Переменные: $api -> объект MediaWiki::API, вызываемый из основной программы, $name -> название файла в формате MediaWiki, $url -> адрес файла для получения его содержимого, $sum -> описание файла для системы контроля версий, $reupload -> если определено, позволяет перезаписывать имеющийся файл.
При вызове процедуры отдает: "HTTP::Message content must be bytes at /usr/local/share/perl/5.10.0/HTTP/Request/Common.pm line 91".
Как это можно исправить?