请求服务器的时候发送`cookie`

项目需求,在请求服务器的时候需要发送cookie
查找资料一般都是说这个方法bool setcookie ( string $name [, string $value = "" [, int $expire = 0 [, string $path = "" [, string $domain = "" [, bool $secure = false [, bool $httponly = false ]]]]]] )
但是它并不能发送到服务器

  • 设置cookie的方式
// 通过头部
header("Set-Cookie: g=121");
// 通过setcookie函数设置
setcookie('name', 'value', time() + 10, '/',$url1);
// 还有一个通过JS传递COOKIE的
document.cookie = "username=Darren;path=/;domain=weblinux/test.php"
  • 后俩经过测试,发现使用curl可以。注意,多个cookie之间要用;号隔开
  curl_setopt($ch,CURLOPT_COOKIE, "g=".$token.';'.'PHPSESSID='.$_COOKIE['PHPSESSID'] );
    public function http_get($url,$token)
    {
        $ch = curl_init();
    // 请求时带cookie参数
        curl_setopt($ch,CURLOPT_COOKIE, "g=".$token.';'.'PHPSESSID='.$_COOKIE['PHPSESSID'] );
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)');
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
        curl_setopt($ch, CURLOPT_TIMEOUT, 30);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        $response = curl_exec($ch);
        if ($response === FALSE) {
            return false;
        }
        curl_close($ch);
        return $response;
    }


$url = 'http://test/test.php';
$res = http_get($url,121);
echo '
';
print_r($res);


  • http://test/test.php页面
$res = $_COOKIE;
echo '
';
print_r($res);
请求服务器的时候发送`cookie`_第1张图片
图片.png
  • 推荐一个打印头部的PHP函数
    请求服务器的时候发送`cookie`_第2张图片
    getallheaders()

你可能感兴趣的:(请求服务器的时候发送`cookie`)