php - PHP CURL 类不接受对象参数
问题描述
我有一门用于 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两个请求被执行,连接只有一个。
解决方案
推荐阅读
- django - 将 zip 文件从 unc 传递到在 docker 内运行的 python 代码
- javascript - 如何使用节点 js 程序中任何元素的值?
- assembly - 在加载/存储指令中是否可以有一个负数,而不是 4 的倍数?
- php - 使用 PHP 计算数组中值的总和
- javascript - 使用 JQuery 和 JSON 填充引导表
- docker - Docker Hub Registry 无法从 Github 存储库构建 docker 映像
- scala - 杜比。编写 .update.withGeneratedKeys() 和 .update.run
- json - 从 Map 的结构中保存读/写/保存到 json
- jsf - 删除最后一页 LazyDataModel 中的最后一行
- firebase-realtime-database - Firebase 实时数据库:用户是否每次都下载整个数据库?