PHP

PHP原生curl请求示例

微信扫一扫,分享到朋友圈

PHP原生curl请求示例
收藏 0 0

以下的代码本来是用在thinkPHP中的,测试是没有问题的。

if (!function_exists('http')) {

    function http($url, $params, $method = "GET", $header = [], $multi = false)
    {
        $options = [
            CURLOPT_TIMEOUT => 30,
            CURLOPT_RETURNTRANSFER => 1,
            CURLOPT_SSL_VERIFYPEER => false,
            CURLOPT_SSL_VERIFYHOST => false,
            CURLOPT_HTTPHEADER => $header,
        ];

        switch (strtoupper($method)) {
            case "GET":
                $options[CURLOPT_URL] = $url . "?" . http_build_query($params);
                break;
            case "POST":
                $options[CURLOPT_URL] = $url;
                $params = $multi ? $params : http_build_query($params);
                $options[CURLOPT_POST] = 1;
                $options[CURLOPT_POSTFIELDS] = $params;
                break;
            default:
                throw new Exception("仅支持GET和POST");
        }

        $curl_handler = curl_init();
        curl_setopt_array($curl_handler, $options);
        $data = curl_exec($curl_handler);
        $error = curl_error($curl_handler);
        curl_close($curl_handler);
        if ($error) throw new Exception('请求发生错误:' . $error);
        return $data;
    }
};

在使用上面代码的时候一定要注意,headers中的代码一定要是字符串的样式的数组,不要是键值对的,headers在请求的时候,他是把数组按字符串解析的。

后来找到了一个类库(guzzlephp),就放弃了上面的方法。

锦城虽云乐,不如早还家。
上一篇

Git快速提取已提交的文件并打包

你也可能喜欢

发表评论

您的电子邮件地址不会被公开。 必填项已用 * 标注

提示:点击验证后方可评论!

插入图片