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
> [email protected]
> https://lists.wikimedia.org/mailman/listinfo/mediawiki-api
>
>
>   


_______________________________________________
Mediawiki-api mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-api

Reply via email to