zoukankan      html  css  js  c++  java
  • curl模拟http请求

    简介

    cURL的官方定义为:curl is a command line tool for transferring data with URL syntax,即使用URL语法规则来传输数据的命令行工具

    PHP 支持 Daniel Stenberg 创建的 libcurl 库,能够连接通讯各种服务器、使用各种协议。libcurl 目前支持的协议有 http、https、ftp、gopher、telnet、dict、file、ldap。 libcurl 同时支持 HTTPS 证书、HTTP POST、HTTP PUT、 FTP 上传(也能通过 PHP 的 FTP 扩展完成)、HTTP 基于表单的上传、代理、cookies、用户名+密码的认证。

    概念

    在PHP中使用cURL

    图示:

    cURL模拟get请求

    /**
     * get方式发送curl请求
     * @param string $url    请求服务器地址
     * @param array $header  请求头数据
     * @param int $timeout   超时时间
     * @return mixed
     * @author itbsl
     */
    function curl_get($url, $header=[], $timeout=30) {
    
        //初始化curl
        $curl = curl_init();
    
        //设置curl(请求的服务器地址)
        //参数1: curl资源
        //参数2: 配置项名称
        //参数3: 配置项的值
        curl_setopt($curl, CURLOPT_URL, $url);
    
        //跳过安全证书验证
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);  // 从证书中检查SSL加密算法是否存在
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);  // 跳过证书检查
    
        //设置获取的信息以文件流的形式返回,而不是直接输出
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    
        curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
    
        curl_setopt($curl, CURLOPT_TIMEOUT, $timeout);
    
        //发出请求
        $result = curl_exec($curl);
    
        //关闭curl资源
        curl_close($curl);
    
        return $result;
    }
    

    cURL模拟post请求

    /**
     * post方式发送curl请求
     * @param string $url   请求的服务器地址
     * @param array $data   要发送的数据
     * @param array $header 请求头数据
     * @param int $timeout  超时时间
     * @return mixed
     * @author itbsl<itbsl@foxmail.com>
     */
    function curl_post($url, $data=[], $header=[], $timeout=30) {
    
        //初始化curl
        $curl = curl_init();
    
        //设置curl(请求的服务器地址)
        //参数1: curl资源
        //参数2: 配置项名称
        //参数3: 配置项的值
        curl_setopt($curl, CURLOPT_URL, $url);
    
        //跳过安全证书验证
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);  // 从证书中检查SSL加密算法是否存在
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);  // 跳过证书检查
    
        //设置获取的信息以文件流的形式返回,而不是直接输出
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    
        curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
    
        //设置请求方式为post请求
        curl_setopt($curl, CURLOPT_POST, true);
    
        //设置post方式提交时携带的数据
        curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
    
        curl_setopt($curl, CURLOPT_TIMEOUT, $timeout);
    
        //发出请求
        $result = curl_exec($curl);
    
        //关闭curl资源
        curl_close($curl);
    
        return $result;
    }
    
  • 相关阅读:
    数据结构-链式结构-队列
    c数据结构-线性结构-队列
    栈的四则运算的运用
    C++/C—函数指针
    向显存写数据x8086
    结构体内存偏移量
    MFC-ComboBox控件的使用
    MFC的Edit text编辑框控件
    C/C++反汇编-各种表达式(加减乘)
    MFC- 学习控件-静态文本
  • 原文地址:https://www.cnblogs.com/itbsl/p/9995882.html
Copyright © 2011-2022 走看看