📜  使用 cURL 在 PHP 中调用 API (1)

📅  最后修改于: 2023-12-03 15:22:10.585000             🧑  作者: Mango

使用 cURL 在 PHP 中调用 API

在PHP中,我们可以使用cURL来调用API。cURL是一种用于通过命令行或代码向服务器发送数据的工具,它支持多种协议,并且功能强大。

准备工作

在使用cURL之前,我们首先需要确认是否已经安装了cURL扩展。可以通过以下命令来检查:

php -m | grep curl

如果输出了curl,则表示cURL已经安装。如果没有输出,则需要安装cURL扩展,可以通过以下命令来安装:

sudo apt install php-curl   # Debian/Ubuntu
sudo yum install php-curl   # CentOS/Fedora
发送GET请求

我们可以使用cURL来发送HTTP请求,下面是一个使用GET方法发送请求的例子:

<?php

$url = 'https://api.example.com/user/123';
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$response = curl_exec($ch);

curl_close($ch);

echo $response;

上述代码中:

  • CURLOPT_URL指定了请求的URL。
  • CURLOPT_RETURNTRANSFER表示将响应保存为字符串,而不是直接输出到屏幕上。
  • curl_exec发送HTTP请求,并返回响应。

需要注意的是,在发送GET请求时,如果需要传递参数,可以将参数拼接在URL后面。

发送POST请求

发送POST请求可以使用与发送GET请求类似的方式,下面是一个例子:

<?php

$url = 'https://api.example.com/user';
$data = array(
    'name' => 'Alice',
    'age' => 18,
);
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));

$response = curl_exec($ch);

curl_close($ch);

echo $response;

上述代码中:

  • CURLOPT_POST表示发送POST请求。
  • CURLOPT_POSTFIELDS指定POST请求的数据。需要注意的是,POST数据需要以URL编码的形式发送,可以使用http_build_query函数来将参数转换为URL编码的字符串。
发送其他类型请求

除了GET和POST请求之外,cURL还支持其他HTTP方法,例如PUT和DELETE。可以通过以下方式来发送PUT请求:

<?php

$url = 'https://api.example.com/user/123';
$data = array(
    'name' => 'Bob',
    'age' => 20,
);
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT');
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));

$response = curl_exec($ch);

curl_close($ch);

echo $response;

对于其他HTTP方法的请求,只需要将CURLOPT_CUSTOMREQUEST选项的值改为对应的方法名即可。

参考资料
  • PHP cURL扩展文档:https://www.php.net/manual/zh/book.curl.php
  • cURL官方文档:https://curl.se/docs/manual.html