function request($request_url)
 {
     $results = false;
     $request_url = $this->get_adjusted_request_url($request_url);
     $this->adjust_post_data();
     $this->disable_error_reporting();
     $icanSnoopy = new IcanSnoopy();
     if (!is_readable($icanSnoopy->curl_path) || !is_executable($icanSnoopy->curl_path)) {
         $icanSnoopy->curl_path = '/usr/bin/curl';
     }
     $this->reset_error_reporting();
     $icanSnoopy->_fp_timeout = 3;
     $icanSnoopy->read_timeout = 5;
     if ('GET' === $this->method) {
         $icanSnoopy->fetch($request_url);
     } else {
         $icanSnoopy->set_submit_multipart();
         $icanSnoopy->submit($request_url, $this->post_data, $this->post_files);
     }
     if ($icanSnoopy->error || $icanSnoopy->timed_out) {
         $this->error = $icanSnoopy->error;
     } else {
         if ($this->gzipped) {
             $icanSnoopy->results = $this->gzdecode($icanSnoopy->results);
         }
         $results = icl_xml2array($icanSnoopy->results, 1);
         if (array_key_exists('info', $results) && '-1' === $results['info']['status']['attr']['err_code']) {
             $this->error = $results['info']['status']['value'];
             $results = false;
         }
     }
     return $results;
 }
Exemple #2
0
 function _request($request, $method='GET', $formvars=null, $formfiles=null, $gzipped = false){
     global $sitepress_settings, $sitepress;
     $request = str_replace(" ", "%20", $request);
     $c = new IcanSnoopy();
     
     $debugvars =  array(
         'debug_cms' => 'WordPress',
         'debug_module' => 'WPML ' . ICL_SITEPRESS_VERSION,
         'debug_url'     => get_bloginfo('siteurl')
     );
     
     if($method == 'GET'){
         $request .= '&' . http_build_query($debugvars);    
     }else{
         $formvars += $debugvars;
     }
     
     // disable error reporting
     // needed for open_basedir restrictions (is_readable)
     $_display_errors = ini_get('display_errors');
     $_error_reporting = ini_get('error_reporting');
     ini_set('display_errors', '0');        
     ini_set('error_reporting', E_NONE);        
     
     if (!@is_readable($c->curl_path) || !@is_executable($c->curl_path)){
         $c->curl_path = '/usr/bin/curl';
     }        
     
     // restore error reporting
     // needed for open_basedir restrictions
     ini_set('display_errors', $_display_errors);        
     ini_set('error_reporting', $_error_reporting);        
     
     
     $c->_fp_timeout = 3;
     $c->read_timeout = 5;
     $url_parts = parse_url($request);
     if($sitepress_settings['troubleshooting_options']['http_communication']){
         $request = str_replace('https://','http://',$request);
     }
     if($method=='GET'){                        
         $c->fetch($request);  
         if($c->timed_out){die(__('Error:','sitepress').$c->error);}
     }else{
         $c->set_submit_multipart();          
         $c->submit($request, $formvars, $formfiles);            
         if($c->timed_out){die(__('Error:','sitepress').$c->error);}
     }
     
     if($c->error){
         $this->error = $c->error;
         return false;
     }
     
     if($gzipped){
         $c->results = $this->_gzdecode($c->results);
     }        
     $results = icl_xml2array($c->results,1);                        
     
     if(isset($results['info']) && $results['info']['status']['attr']['err_code']=='-1'){
         $this->error = $results['info']['status']['value'];            
         return false;
     }
             
     return $results;
 }