PHP CURL COOKIE

作者: answer6 | 来源:发表于2018-04-14 15:54 被阅读0次

    最近在做项目的时候,对面提供的接口是 cookie 验证的,并有场景是拿到 api1 的cookie 去访问 api2 的信息;还没对接过类似接口,查了一下资料,这里用 curl 方法实现一下。( 当然前提是你环境需要 curl 支持 )


     function curl_class( $url,$params = '',$get_cookie_file = '',$post_cookie_file = '' ) {
            $UserAgent = 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; .NET CLR 3.5.21022; .NET CLR 1.0.3705; .NET CLR 1.1.4322)';
            // $ch = curl_init( $url );          //这里是初始化一个访问对话,并且传入url,这要个必须有
            $ch = curl_init(  );          //这里是初始化一个访问对话,并且传入url,这要个必须有
            curl_setopt($ch, CURLOPT_USERAGENT, $UserAgent);
            curl_setopt($ch, CURLOPT_URL, $url);
            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0 );
            curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0 );
            curl_setopt($ch, CURLOPT_HEADER,0);      // 是否显示 header 头
            curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);      //将 curl_exec()获取的信息以文件流的形式返回,而不是直接输出。设置为0是直接输出
            curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);    //设置跟踪页面的跳转,有时候你打开一个链接,在它内部又会跳到另外一个,就是这样理解
            curl_setopt($ch,CURLOPT_POST,1);                //开启post数据的功能,这个是为了在访问链接的同时向网页发送数据,一般数urlencode码
            curl_setopt($ch,CURLOPT_POSTFIELDS,$params);
            curl_setopt($ch, CURLOPT_COOKIEJAR, $get_cookie_file );   // 拿到的cookies文件,并存到本地
            curl_setopt($ch, CURLOPT_COOKIEFILE, $post_cookie_file);  // 访问其他页面时,发送的cookie信息文件
    
            $content=curl_exec($ch); 
            curl_close( $ch );//关闭会话
            return  $content;
    
        }
    

    不一样的 cookie 值,上面方法会依次放进去,如下


    获取 cookie

    后面就可以拿着,已访问存储好的 cookie 访问接口了。

    相关文章

      网友评论

        本文标题:PHP CURL COOKIE

        本文链接:https://www.haomeiwen.com/subject/mfylkftx.html