PHP CURL COOKIE

最近在做项目的时候,对面提供的接口是 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 访问接口了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容