浅谈PHP使用curl发送get和post请求

1、GET请求

function getData($url, $data = null)
{
    $ch = curl_init();
    //数据处理,判断是否携带参数
    if ($data) {
        $url .= '?'.http_build_query($data);
    }
    //主要参数
    curl_setopt($ch, CURLOPT_URL, $url);
    //使返回不直接输出
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    //连接超时(秒)
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
    //执行
    $result = curl_exec($ch);
    curl_close($ch);
    return $result;
}

2、POST请求

function postData($url, $data = [], $json = false)
{
    $ch = curl_init();
    //数据处理及POST参数
    if ($json) {
    	//json编码
        $data = json_encode($data);
        //设置header
        curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-type: application/json']);
    }else {
        $data = http_build_query($data);//常规编码
        //不必额外设置header,默认x-www-form-urlencoded
    }
    //POST请求
    curl_setopt($ch, CURLOPT_POST, true);
    //组装数据
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    //主要参数
    curl_setopt($ch, CURLOPT_URL, $url);
    //使返回不直接输出
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    //连接超时(秒)
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
    //执行
    $result = curl_exec($ch);
    curl_close($ch);
    return $result;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是一个使用curl发送get和post请求的例子: 发送GET请求: ```php $url = "http://www.example.com/api"; $params = array( 'param1' => 'value1', 'param2' => 'value2' ); $headers = array( 'Authorization: Bearer token', 'Content-Type: application/json' ); $url .= '?' . http_build_query($params); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); $response = curl_exec($ch); curl_close($ch); echo $response; ``` 发送POST请求: ```php $url = "http://www.example.com/api"; $data = array( 'param1' => 'value1', 'param2' => 'value2' ); $headers = array( 'Authorization: Bearer token', 'Content-Type: application/json' ); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data)); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); $response = curl_exec($ch); curl_close($ch); echo $response; ``` 其中,$url 是要请求的地址,$params 是get请求的参数,$data 是post请求的参数,$headers 是请求头部。在发送get请求时,需要将参数拼接在url后面,使用http_build_query()函数可以将数组转为url参数格式。在发送post请求时,需要将参数转为json格式,并设置CURLOPT_POSTCURLOPT_POSTFIELDS两个选项。最后,使用curl_exec()函数发送请求curl_close()函数关闭curl句柄,$response是请求返回的结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值