watsongx
Новичок
У меня есть класс для запросов curl. Авторизуется на закрытой странице с помощью метода POST, сохраняет файл cookie, а затем выполняет запрос. GET получает массив данных. Класс разработан для повышения производительности запросов и сокращения времени. То есть мы делаем одно соединение и передаем два запроса GET и POST.
Этот код выполняет запрос POST. Когда я хочу установить опцию Get, я ничего не получаю. Где ошибка? Как задать параметры объекта класса так, чтобы выполнялись два запроса POST и GET, а соединение было только одним.
Код:
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);