location.href请求设置头部header_php采集模拟实际用户会话的请求

1c925b5c19c88a8cc3987d876a202164.png

在api采集过程中,有的接口你不传cookie 无法让你访问接口。那么我们需要在传cookie的地方把cookie带进去。

cookie 的来源,比如一次访问,或者一次登录。响应时服务器就给你生成好了。

curl 方式:

// 初始化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("", $content); // 解析COOKIE preg_match("/set-cookie:([^]*)/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); 

guzzle-http

try {  $client     = new GuzzleHttpClient();  $jar        = new GuzzleHttpCookieCookieJar();   $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就好。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值