如何发送 curl_init GET 请求?详细教程!

PHP 的 curl_init()函数可用于启动与 Web 服务器的通信并通过 GET 方法检索数据。通过指定所需的 URL,开发人员可以方便地完成数据获取和 API 交互等任务

用 Apifox,节省研发团队的每一分钟

如何发送 curl_init GET 请求?详细教程!

免费使用 Apifox

相关推荐

最新文章

API

一体化协作平台

API 设计

API 文档

API 调试

自动化测试

API Mock

API Hub

立即体验 Apifox
目录

cURL 是「URL 客户端」的缩写,是为开发人员提供了用于传输数据的多功能工具包,提供两种功能:

  • 用户友好的命令行工具
  • 可以集成到程序中的强大库
🦊
Apifox 是一体化 API 开发平台,为开发人员提供了整个 API 生命周期的大量功能,当需要编辑或测试 PHP cURL 命令,可以考虑查看 Apifox 的网站。
Apifox - API 文档、调试、Mock、测试一体化协作平台。拥有接口文档管理、接口调试、Mock、自动化测试等功能,接口开发、测试、联调效率,提升 10 倍。最好用的接口文档管理工具,接口自动化测试工具。
Apifox = Postman + Swagger + Mock + JMeter。集接口文档工具、接口Mock工具、接口自动化测试工具、接口调试工具于一体,提升 10 倍研发效率。是最好用的API文档工具,API自动化测试工具,API Mock工具,接口文档管理工具,接口文档生成工具。

curl_init()的定义

根据 PHP 官方网站,curl_init 函数初始化一个 cURL 会话,并返回一个 cURL 句柄,以便与 curl_setopt()、curl_exec() 和 curl_close() 函数一起使用。

涉及参数

URL

如果提供 URL, CURLOPT_URL 选项将设置为其值,还可以使用 curl_setopt()函数手动设置此选项。

但如果设置了 open_basedir ,则 cURL 本身会禁用 file 协议。

返回值

如果成功,curl_init() 函数会返回一个 cURL 句柄,如果出现错误,则返回 false

什么是 GET 请求?

在 HTTP 中,GET 请求是一种用于从服务器上的指定资源检索数据的特定方法,被归类为安全方法,不会改变资源本身的状态。

方法

GET 请求是指定资源的表示。

返回响应

成功的 GET 请求应返回包含所请求数据的响应,通常采用 HTML、文本或其他数据格式的形式。

数据修改

GET 请求旨在检索现有信息,不应用于修改服务器上的数据。

缓存

对 GET 请求的响应通常可以由客户端(Web 浏览器)和中间服务器缓存,可以提高对同一资源的后续请求的性能。

GET 请求要点

  • GET 请求是 Web 浏览器与 Web 服务器交互以检索网页和其他资源的基础
  • 因为不会修改服务器端数据,被认为是“安全的”
  • 通常用于获取静态内容,例如 HTML 页面、图像和样式表

curl_init() GET 请求的代码示例

要了解如何使用所涉及的 curl_init() 函数发出 GET 请求,可以看看下面的示例:

基本 GET 请求

<?php
$url = "https://www.example.com";
// Initialize curl
$$ch = curl_init($$url);
// Set option to return the transfer as a string
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// Execute the request
$$response = curl_exec($$ch);
// Check for errors
if(curl_errno(
$ch)) {
  echo 'Error:' . curl_error($
ch);
} else {
  // Process the response (e.g., echo, decode JSON)
  echo $response;
}
// Close the curl session
curl_close($ch);
?>

带有附加选项的 GET 请求

<?php
$url = "https://www.example.com";
// Initialize curl
$$ch = curl_init($$url);
// Set user agent
curl_setopt($ch, CURLOPT_USERAGENT, "My PHP Script");
// Set option to follow redirects
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
// Set option to return the transfer as a string
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// Execute the request
$$response = curl_exec($$ch);
// Check for errors
if(curl_errno(
$ch)) {
  echo 'Error:' . curl_error($
ch);
} else {
  // Process the response
  echo $response;
}
// Close the curl session
curl_close($ch);
?>

更复杂 GET 请求示例

这是一个稍微复杂的 GET 请求,涉及一个 API,该 API 允许根据类别价格范围和排序选项过滤产品。

<?php
$url = "https://api.example.com/products";
// Define filter parameters
$filters = array(
  "category" => "electronics",
  "price_min" => 100,
  "price_max" => 500,
  "sort" => "price_asc"
);
// Build query string with encoded parameters
$$queryString = http_build_query($$filters);
$$url .= "?" . $$queryString;
// Initialize curl
$$ch = curl_init($$url);
// Set option to return the transfer as a string
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// Set headers to indicate JSON data is expected (optional)
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
  'Content-Type: application/json'
));
// Execute the request
$$response = curl_exec($$ch);
// Check for errors
if(curl_errno(
$ch)) {
  echo 'Error:' . curl_error($
ch);
} else {
  // Decode the JSON response (assuming response is JSON)
  
$data = json_decode($
response, true);

  // Process the data (e.g., loop through products)
  if (isset(
$data['products'])) {
    foreach ($
data['products'] as 
$product) {
      echo "Product Name: " . $
product['name'] . ", Price: 
$" . $
product['price'] . PHP_EOL;
    }
  }
}
// Close the curl session
curl_close($ch);
?>

代码说明:

  1. 定义 API 端点 URL 和过滤器参数(类别、价格范围和排序)。
  2. 使用 http_build_query 创建带有编码参数值的查询字符串并将其附加到 URL。
  3. curl_setopt 设置请求的选项,包括捕获响应以及在 API 需要特定数据格式(例如 JSON)时可能设置标头。
  4. 错误检查后,响应将解码为 JSON(假设 API 返回 JSON 数据)。
  5. 迭代解码的数据(产品数组)并显示产品详细信息。

注意事项

当然,这些只是经过简化的代码示例,旨在解释如何使用 curl_init() 函数发出 GET 请求,所以需要确保在各自的 IDE 中进行所需的修改!

自的 IDE 中进行所需的修改! 对于官方文档,可以查看:

PHP: cURL - Manual

用 Apifox 轻松使用 cURL 文件

Apifox 是一体化 API 开发平台,为用户提供整个 API 生命周期所需的所有工具。借助 Postman 等流行工具的功能,不再需要下载任何其他应用程序!

用 Apifox 轻松使用 cURL 文件

快速将 cURL 命令导入 Apifox

要将 cURL 命令导入 Apifox,首先在项目中,单击 Apifox 窗口左上角的紫色 + 按钮,然后选择 导入 cURL

curl_init() 的定义

将 cURL 命令复制并粘贴到上显示的框中。

快速将 cURL 命令导入 Apifox

导入成功的话,就能够以 API 请求的形式查看 cURL 命令。

以 API 请求的形式查看 cURL 命令

使用 Apifox 生成 PHP 代码

如果我们需要 PHP 编码方面的需求,Apifox 的代码生成功能可以帮助我们快速实现。

找到 API 请求上的 </> 生成代码 按钮,然后在下拉列表中选择 生成接口请求代码

使用 Apifox 生成 PHP 代码

接着在弹出的窗口中选择「PHP」,默认显示 cURL 部分,应该看到为 cURL 生成的代码。我们只需要将其复制并粘贴到 IDE(集成开发环境)就可以继续开发应用程序。

 cURL复制并粘贴到 IDE

总结

PHP 中的 curl_init() 函数能够使用 GET 请求从 Web 服务器检索数据,允许与 API 交互、下载文件和抓取 Web 内容。通过掌握 curl_init() ,我们可以自动执行任务、以编程方式收集信息以及扩展 PHP 应用程序的功能。curl_init() 函数还可以发送 PUT 请求POST 请求DELETE 请求