Класс PHP CURL не принимает параметры объекта

watsongx

Новичок
У меня есть класс для запросов curl. Авторизуется на закрытой странице с помощью метода POST, сохраняет файл cookie, а затем выполняет запрос. GET получает массив данных. Класс разработан для повышения производительности запросов и сокращения времени. То есть мы делаем одно соединение и передаем два запроса GET и POST.
Код:
class Par {


    private $url;
    private $ch;

    public function __construct($print = false){
        $this->ch = curl_init();
        if (!$print){
            curl_setopt($this->ch, CURLOPT_RETURNTRANSFER, true) ;
        }
    }
    public function set($name, $value){
        curl_setopt($this->ch, $name, $value);
        return $this;
    }

    public function exec($url){
        curl_setopt($this->ch,  CURLOPT_URL, $url);
        return curl_exec($this->ch);
    }

    public function __destruct(){
        curl_close($this->ch);
    }
}
$url_auth = 'http://site=user_login';
$url = 'http://site_search&group=1';

$auth_data = array(
    "login" => "login",
    "password" => "pas",
  
);

$parser = new Par();
$parser->set(CURLOPT_POST, true)
       ->set(CURLOPT_POSTFIELDS, http_build_query($auth_data))
      ->set(CURLOPT_FOLLOWLOCATION, 1)
       ->set(CURLOPT_COOKIEJAR, __DIR__ .'/cook.txt')
       ->set(CURLOPT_COOKIEFILE, __DIR__ .'/cook.txt');
    
$data = $parser->exec($url_auth);
print_r($data);

$parser->set(CURLOPT_CUSTOMREQUEST, 'GET')
       ->set(CURLOPT_COOKIEFILE, __DIR__ .'/cook.txt');

$data = $parser->exec($url);
print_r($data);
Этот код выполняет запрос POST. Когда я хочу установить опцию Get, я ничего не получаю. Где ошибка? Как задать параметры объекта класса так, чтобы выполнялись два запроса POST и GET, а соединение было только одним.
 

Squats

Новичок
Откройте для себя curl_setopt_array - Круто, не правда - ли?!
Классно я избавился от бесполезного вашего класса?))
 

WMix

герр M:)ller
Партнер клуба
Как без класса сделать два запроса при одном соединении курлы
это принципиально "при одном соединении"? дело в том, что классический HTTP curl создает socket, отправляет запрос, получает ответ и закрывает socket.
ну те тебе для 2х запросов нужно запускать 2х curl_init();
 

watsongx

Новичок
это принципиально "при одном соединении"? дело в том, что классический HTTP curl создает socket, отправляет запрос, получает ответ и закрывает socket.
ну те тебе для 2х запросов нужно запускать 2х curl_init();
Нет не принципиально. Просто нужно уменьшить время запроса.
 
Сверху