zoukankan      html  css  js  c++  java
  • curl详解

    curl各个参数

     $opts = array(
                //基础参数
                CURLOPT_TIMEOUT        => 30,//设置请求超时时间
                CURLOPT_RETURNTRANSFER => 1,//获取的信息以文件流的形式返回,而不是直接输出
                CURLOPT_SSL_VERIFYPEER => false,//禁用后cURL将终止从服务端进行验证
                CURLOPT_SSL_VERIFYHOST => false,//检查服务器SSL证书中是否存在一个公用名
                CURLOPT_URL => 'http://127.0.0.1/test/index.php',//请求地址
                
                //POST请求
                CURLOPT_POST => 1,//发起POST方式请求
                CURLOPT_POSTFIELDS => array(
                    'user'=>'jeff',
                    'file'=>'@D:/image/my_test.jpg',//传输文件
                ),//POST发送的数据
               
                
                //获取头信息
                CURLOPT_HEADER => 1,//获取头信息(与POST方式不能同时使用)
                CURLOPT_NOBODY => 1,//不获取主体内容
                
                //伪造头信息
                CURLOPT_HTTPHEADER=> $header,//设置头信息,数组方式
                CURLOPT_REFERER => 'https://www.baidu.com',//伪造来源地址
                
                //获取cookie
                CURLOPT_COOKIEJAR => $cookie_file,//为cookie数据
                
                //使用cookie
                CURLOPT_COOKIEFILE => $cookie_file,//使用cookie数据
                
                //跟随跳转
                CURLOPT_FOLLOWLOCATION => true,//面的跳转会继续跟踪访问,而且cookie在header里面被保留了下来
                //使用CURLOPT_MAXREDIRS可以限定递归返回的数量
                
                //代理访问
                CURLOPT_PROXY => '39.77.68.212',//代理服务器IP
                CURLOPT_PROXYPORT => '8080',//代理服务器端口
                //CURLOPT_PROXYUSERPWD 指定需要验证的代理的账号密码,"[username]:[password]"格式的字符串
                
                //综合
                curl_setopt($ch, CURLOPT_ENCODING, "gzip"); //指定gzip压缩,若返回数据为乱码可尝试
                
            );

    初始并运行

            $ch = curl_init();
            curl_setopt_array($ch, $opts);
            $data  = curl_exec($ch);
            $info = curl_getinfo($ch);//获取传输状态信息数组
            $error = curl_error($ch);//获取错误信息
            curl_close($ch);
            if($error) throw new Exception('CURL请求错误:' . $error);    

    curl_getinfo($ch)获取的数组信息

    "url" //资源网络地址 
    "content_type" //内容编码 
    "http_code" //HTTP状态码 
    "header_size" //header的大小 
    "request_size" //请求的大小 
    "filetime" //文件创建时间 
    "ssl_verify_result" //SSL验证结果 
    "redirect_count" //跳转技术 
    "total_time" //总耗时 
    "namelookup_time" //DNS查询耗时 
    "connect_time" //等待连接耗时 
    "pretransfer_time" //传输前准备耗时 
    "size_upload" //上传数据的大小 
    "size_download" //下载数据的大小 
    "speed_download" //下载速度 
    "speed_upload" //上传速度 
    "download_content_length"//下载内容的长度 
    "upload_content_length" //上传内容的长度 
    "starttransfer_time" //开始传输的时间 
    "redirect_time"//重定向耗时

    CURLOPT_CONNECTTIMEOUT  

    CURLOPT_TIMEOUT

    使用cURL下载MP3文件是一个对开发人员来说不错的例子。CURLOPT_CONNECTTIMEOUT 
    可以设置为10秒,标识如果服务器10秒内没有响应,脚本就会断开连接;CURLOPT_TIMEOUT可以设置为100,如果MP3文件100秒内没有下载完成,脚本将会断开连接。

  • 相关阅读:
    树形DP,最大直径,并查集——HDU4514
    树形DP——HDU2196
    树上倍增法,LCA——CF-832-D
    LCA,Tarjan——POJ1330
    树的直径,树形DP,DFS——POJ1958
    剑指offer28-最小k个数
    剑指offer27-数组中出现次数超过一半的数字
    剑指offer26-字符串的排列
    剑指offer25-二叉搜索树与双向链表
    剑指offer24-复杂链表的复制
  • 原文地址:https://www.cnblogs.com/blueskycc/p/5524127.html
Copyright © 2011-2022 走看看