• 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秒内没有下载完成,脚本将会断开连接。

  • 相关阅读:
    混用Int与IntPtr导致GetProcAddress始终返回null
    Net中获取程序集路径
    Sql server 2014 同一数据库换名还原,导致同名库一直处于还原状态
    微耕N3000注入
    Xaramin IOS 开发常见问题
    Vs2017 xaramin mac build agent部署后记
    Git 笔记
    spring AOP
    JAVA 反射原理
    Hyperledger Fabric:fabric private data技术【官方文档翻译】
  • 原文地址:https://www.cnblogs.com/blueskycc/p/5524127.html
Copyright © 2020-2023  润新知