PHP CURL

作者: dongdog | 来源:发表于2020-04-28 12:24 被阅读0次
    /**
     * @param $method //请求接口名
     * @param $array //带过去参数
     * @return array ['status'] 状态1成功 状态2失败
     * @return array ['msg']  消息
     * @return array ['data'] 返回数据
     */
    function TdHttpsPost($method, $array = [])
    {
    
    
        $td_info = C('APP');
        $data['secretKey'] = $td_info['TD_KEY'];//秘钥
        $data['serverId'] = $td_info['TD_SERVER'];//服务器id
        $data['module'] = $td_info['TD_MODULE'];//模型
        $data['method'] = $method;//模型
        $data['param[0]'] = json_encode($array); //带参
        $ch = curl_init();
        // 设置选项,包括URL
        curl_setopt($ch, CURLOPT_URL, $td_info['TD_URL']);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);    // 对证书来源的检查
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 1);    // 从证书中检查SSL加密算法是否存在
        curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);    // 模拟用户使用的浏览器
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);    // 使用自动跳转
        curl_setopt($ch, CURLOPT_AUTOREFERER, 1);        // 自动设置Referer
        curl_setopt($ch, CURLOPT_POST, 1);        // 发送一个 常规的Post请求
        curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));    // Post提交的数据包
        curl_setopt($ch, CURLOPT_TIMEOUT, 5);        // 设置超时限制防止死循环
        curl_setopt($ch, CURLOPT_HEADER, 0);        // 显示返回的Header区域内容
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);    //获取的信息以文件流的形式返回
    
        $result = curl_exec($ch);    // 执行操作
    
        //通信失败 写日志
        if (curl_errno($ch)) {
            curl_close($ch);    // 关闭CURL
            TdHttpLogsRecord($method, '与TD通信失败' . $return['msg'], 2, $result);
            return [
                'status' => 2,
                'msg' => 'Error:' . curl_error($ch), //抓捕异常
            ];
    
        }
        curl_close($ch);    // 关闭CURL
        $info = json_decode($result, true);
        //服务器返回异常消息 写日志
        if ($info['errorCode'] != 0) {
            TdHttpLogsRecord($method, '通知服务器返回消息异常', 3, $result);
            return [
                'data' => $info,
                'status' => 2,
                'msg' => '通信正常,返回消息异常'
            ];
        }
        //通信正常 写日志
        TdHttpLogsRecord($method, '更新缓存,通知服务器成功', 1, $result);
        return [
            'data' => $info,
            'status' => 1,
            'msg' => '成功'
        ];
    }
    

    相关文章

      网友评论

          本文标题:PHP CURL

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