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