php的curl如何给其他服务器请求发送get、post请求

php的curl如何请求其他服务器上的数据

curl可以干什么?

  • curl是PHP的一个扩展,利用该扩展可以实现服务器之间的数据或文件传输
    也就是说curl就是一个工具,用来做服务器之间数据、文件传输的工具
    用来采集网络中的html网页文件、其他服务器提供接口数据等

开启curl扩展

(1) 在php.ini里面开启curl这个扩展
(2) 将PHP的安装路径保存到环境变量的系统变量中(环境变量之间的分隔符是英文的分号)
(3) 重启apache服务器
(4) 重启计算机

发送curl分为4步

  1. 初始化curl对应函数: curl_init();
  2. 设置curl的请求信息,如请求地址、需要发送给目标服务器的数据、设置是否校验https等 对应函数 : curl_setop();
  3. 执行发送请求 对应函数: curl_exec();
  4. 发送请求结束后记得关闭不使用的curl 对应函数: curl_close();

代码实例

<?php
// 第一步:创建一个新cURL资源
$ch = curl_init();//

// 第二步设置URL和相应的选项
/*
curl_setopt(
	参数1:curl资源,
    参数2:需要设置的CURLOPT_XXX选项,用来设置curl的各种请求,如是否携带参数,是否验证https等,是否为	           POST请求,根据手册,此参数为固定写法。
    参数3:语句柄对应的value值
   )
*/
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_HEADER, false);

// 抓取URL并把它传递给浏览器
curl_exec($ch);

//关闭cURL资源,并且释放系统资源
curl_close($ch);
?>

实例1:使用curl向https://www.xxx.com发送POST请求(注意这里的$data为json)

<?php

function request_curl()
{
    //初使化init方法
    $ch = curl_init();

    //指定URL
    curl_setopt($ch, CURLOPT_URL, 'https://xxx.aaa.com/api/createUser');

    //设定请求后返回结果
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

    //声明使用POST方式来进行发送
    curl_setopt($ch, CURLOPT_POST, 1);

    //发送什么数据到目标服务器呢
    $data = json_encode([
        'userName' => 小明,
        'age' => 18,
        'sex' => '男'
    ]);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);


    //忽略证书(目标服务器的接口有https证书时使用)
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);

    //忽略header头信息
    curl_setopt($ch, CURLOPT_HEADER, 0);

    //设置超时时间
    curl_setopt($ch, CURLOPT_TIMEOUT, 10);

    //发送请求
    $output = curl_exec($ch);

    //关闭curl
    curl_close($ch);

    //打印目标服务器返回给我们的数据
    var_dump($output);

    //返回数据
    return $output;
}

?>

实例2:使用curl发送post请求(这里发送的数据$data为数组类型)

<?php

function request_curl()
{
    // 1. 初始化一个cURL会话
    $ch = curl_init();
    // 2. 设置请求选项, 包括具体的url
    curl_setopt($ch, CURLOPT_URL, 'https:xxx.aaa.com/api/createdUser');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    // 设置请求为post类型
    curl_setopt($ch, CURLOPT_POST, 1);
    // 添加post数据到请求中
    $data = [
        'name'=>'小明',
        'sex'=>'男',
        'age'=>18,
    ];
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    //启用时会将头文件的信息作为数据流输出
    curl_setopt($ch, CURLOPT_HEADER, 0);
    // 3. 执行一个cURL会话并且获取相关回复
    $response = curl_exec($ch);
    // 4. 释放cURL句柄,关闭一个cURL会话
    curl_close($ch);
    //打印返回值
    var_dump($response);
    return $response;
}

?>

实例3:发送get请求

<?php

function request_curl()
{
    // 1. 初始化一个cURL会话
    $ch = curl_init();
    //设置选项,包括URL
    curl_setopt($ch, CURLOPT_URL, 'http:xxx.aaa.com/api/user?name=小明&age=18');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    //执行并获取HTML文档内容
    $response = curl_exec($ch);
    // 4. 释放cURL句柄,关闭一个cURL会话
    curl_close($ch);
    return $response;
}

?>
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PHP是一种常用的服务器端编程语言,可以使用它来发送POST和GET请求POST请求通常用于向服务器提交数据,而GET请求通常用于从服务器获取数据。 发送POST请求的方法是使用PHPcurl库。curl库是一个强大的工具,能够向服务器发送并接收数据。要发送POST请求,需要定义一个url,一个包含需要提交的数据的数组,并打开curl会话。 例如,下面的代码向名为“example.com”的URL发送POST请求: $url = 'http://example.com'; $data = array('name' => 'John Doe', 'email' => 'jdoe@example.com'); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); $result = curl_exec($ch); curl_close($ch); 其中,curl_setopt()方法用于设置会话选项,CURLOPT_URL选项用于设置URL,CURLOPT_POST选项用于指定使用POST请求CURLOPT_POSTFIELDS选项用于指定提交的数据,在这个例子中,是一个包含名字和电子邮件地址的数组。 发送GET请求也很简单,只需要使用PHP的file_get_contents()函数即可。该函数使用指定的URL返回一个字符串。 例如,下面的代码将使用GET请求从名为“example.com”的URL获取数据: $url = 'http://example.com'; $data = file_get_contents($url); 以上是使用PHP发送POST和GET请求的简单方法,不断了解和学习这些方法,可以让开发者更加熟练地处理与服务器之间的交互。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值