Oh, and I'm using MediaWIki 1.14.0 (r194) and Apache 2.
// Samuel
Samuel Lampa skrev:
I'm having some troubles can't post article
content via API that is
bigger than ~5420 bytes. 5420 bytes works, but 5454 bytes fails.
And the problem is that I don't get any result or error message back.
Anyone had similar problems?
Is there some general size limit for posting through the API, that I'm
exceeding? (Strange though that I don't get an error message)
More detailed info:
I'm using PHP Version 5.2.4-2ubuntu5.5 with cURL
Post max size in php.ini is 16M
I'm using the cURL handle class below (The functions "cURLHandle"
(constructor) and "post" should be the ones relevant here). As you can
see the timeout is set to 30 seconds ("curl_setopt($process,
CURLOPT_TIMEOUT, 30);" in the post function), but it doesn't take more
than merely a second or so before the execution ends.
class cURLHandle {
var $headers;
var $user_agent;
var $compression;
var $cookie_file;
var $proxy;
function
cURLHandle($cookies=TRUE,$cookie='./cookies/cookies.txt',$compression='gzip',$proxy='')
{
$this->headers[] = 'Accept: image/gif, image/x-bitmap, image/jpeg,
image/pjpeg';
$this->headers[] = 'Connection: Keep-Alive';
$this->headers[] = 'Content-type:
application/x-www-form-urlencoded;charset=UTF-8';
$this->user_agent = 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT
5.1; .NET CLR 1.0.3705; .NET CLR 1.1.4322; Media Center PC 4.0)';
$this->compression=$compression;
$this->proxy=$proxy;
$this->cookies=$cookies;
if ($this->cookies == TRUE) $this->cookie($cookie);
}
function cookie($cookie_file) {
if (file_exists($cookie_file)) {
$this->cookie_file=$cookie_file;
} else {
fopen($cookie_file,'w') or $this->error('The cookie file could not
be opened. Make sure this directory has the correct permissions');
$this->cookie_file=$cookie_file;
fclose($this->cookie_file);
}
}
function get($url) {
$process = curl_init($url);
curl_setopt($process, CURLOPT_HTTPHEADER, $this->headers);
curl_setopt($process, CURLOPT_HEADER, 0);
curl_setopt($process, CURLOPT_USERAGENT, $this->user_agent);
if ($this->cookies == TRUE) curl_setopt($process,
CURLOPT_COOKIEFILE, $this->cookie_file);
if ($this->cookies == TRUE) curl_setopt($process, CURLOPT_COOKIEJAR,
$this->cookie_file);
curl_setopt($process,CURLOPT_ENCODING , $this->compression);
curl_setopt($process, CURLOPT_TIMEOUT, 30);
if ($this->proxy) curl_setopt($cUrl, CURLOPT_PROXY,
'proxy_ip:proxy_port');
curl_setopt($process, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($process, CURLOPT_FOLLOWLOCATION, 1);
$return = curl_exec($process);
curl_close($process);
return $return;
}
function post($url,$data) {
$process = curl_init($url);
curl_setopt($process, CURLOPT_HTTPHEADER, $this->headers);
curl_setopt($process, CURLOPT_HEADER, 0); // Don't give us the headers
curl_setopt($process, CURLOPT_USERAGENT, $this->user_agent);
if ($this->cookies == TRUE) curl_setopt($process,
CURLOPT_COOKIEFILE, $this->cookie_file);
if ($this->cookies == TRUE) curl_setopt($process, CURLOPT_COOKIEJAR,
$this->cookie_file);
curl_setopt($process, CURLOPT_ENCODING , $this->compression);
curl_setopt($process, CURLOPT_TIMEOUT, 30);
if ($this->proxy) curl_setopt($process, CURLOPT_PROXY, $this->proxy);
curl_setopt($process, CURLOPT_POSTFIELDS, $data);
curl_setopt($process, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($process, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($process, CURLOPT_POST, 1);
$return = curl_exec($process);
curl_close($process);
return $return;
}
function error($error) {
echo "<center><div style='width:500px;border: 3px solid #FFEEFF;
padding: 3px; background-color: #FFDDFF;font-family: verdana; font-size:
10px'><b>cURL
Error</b><br>$error</div></center>";
die;
}
}
Regards
// Samuel Lampa
RIL Partner AB |
http://www.rilnet.com
_______________________________________________
Mediawiki-api mailing list
Mediawiki-api(a)lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-api