PHP 用 cURL 实现 GET/POST 请求

本文介绍了如何使用PHP中的cURL库实现GET和POST请求。包括构造带参数的URL、设置cURL选项、执行请求及处理响应等步骤,并提供了一个实际的应用示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

PHP 用 cURL 实现 GET/POST 请求


// GET请求
public function sendGetRequest($url, $params = []) {

        // 初始化cURL会话
        $ch = curl_init();
    
        // 如果提供了参数,则构建带参数的URL
        if (!empty($params)) {
            $url .= '?' . http_build_query($params);
        }
    
        // 设置cURL选项
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 将响应保存到变量而不是直接输出
        curl_setopt($ch, CURLOPT_HEADER, false); // 不返回响应头信息
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 信任任何证
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); // 表示不检查证书
        curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
    
        // 执行请求并获取响应
        $response = curl_exec($ch);
        
        // 检查请求是否成功
        if ($response === false) {
            $error = curl_error($ch);
            curl_close($ch); // 关闭cURL会话
            print_r($error);
            throw new \Exception("cURL Error: " . $error);
            return json_decode($error, true);
        }
    
        // 关闭cURL会话
        curl_close($ch);
    
        // 返回响应数据
        return json_decode($response, true);
}


// POST请求
public function postCurl($url, $post_data = []){
        // 发送post请求
        $ch = curl_init();

        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post_data));
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

        $result = curl_exec($ch);

        curl_close($ch);

        return json_decode($result, true);
}


// 使用实例
public function menuSave(){

        try {
            $res = $this->sendGetRequest('http://sd.wuji.com:9092/supply-market/login/genToken',['userId'=>"123456"]);
            print_r($res); // 输出响应内容
        } catch (\Exception $e) {
            print_r( "Request failed: " . $e->getMessage()); // 输出错误信息
        }


}

public function https_request($url, $data = null){
    $curl = curl_init();

    if(!empty($data)){
        curl_setopt($curl, CURLOPT_POST, 1);
        curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
    }

    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

    $output = curl_exec($curl);

    curl_close($curl);

    return $output;
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值