在api采集过程中,有的接口你不传cookie 无法让你访问接口。那么我们须要在传cookie的地方把cookie带进去。
cookie 的来源,比如一次访问,或者一次登录。相应时做事器就给你天生好了。
// 初始化CURL $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); // 获取头部信息 curl_setopt($ch, CURLOPT_HEADER, 1); // 返回原生的(Raw)输出 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 实行并获取返回结果 $content = curl_exec($ch); // 关闭CURL curl_close($ch); // 解析HTTP数据流 list($header, $body) = explode("\r\n\r\n", $content); // 解析COOKIE preg_match("/set\-cookie:([^\r\n])/i", $header, $matches); // 后面用CURL提交的时候可以直策应用 // curl_setopt($ch, CURLOPT_COOKIE, $cookie); $cookie = $matches[1];// 初始化CURL $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url2); // 获取头部信息 curl_setopt($ch, CURLOPT_HEADER, 1); // 返回原生的(Raw)输出 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_COOKIE, $cookie);//设置cookie// 实行并获取返回结果 $content = curl_exec($ch); // 关闭CURL curl_close($ch);

try { $client = new \GuzzleHttp\Client(); $jar = new \GuzzleHttp\Cookie\CookieJar(); $response = $client->request('GET', $url, ['cookies'=>&$jar]);} catch (\Exception $e) {return '获取cookie失落败';}try { $response = $client->request('GET', $url2, [ 'query' =>$query, 'cookies' => $jar, ]); $content = $response->getBody()->getContents();} catch (\Exception $e) { return '更新失落败';}
只须要借用& 引用 就可以在第一次要求时拿到cookie 后再传入下个cookie就好。