📌  相关文章
📜  如何在 php 中发出 json 请求(1)

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

如何在 PHP 中发出 JSON 请求

当我们需要从一个 API 获取数据时,通常会以 JSON 格式进行传输。在 PHP 中,我们可以方便地发出一个 JSON 请求来获取数据。本文将介绍如何在 PHP 中发出 JSON 请求。

准备工作

在发出 JSON 请求前,我们需要确保以下几点:

  • PHP 版本必须 >= 5.2.0
  • 已经安装了 cURL 扩展
  • 已知 API 的基本信息,包括 API 的 URL 和需要的参数
发出 JSON 请求

在 PHP 中,我们可以利用 cURL 扩展来发出 HTTP 请求。以下是一个基本的发送 JSON 请求的代码片段:

$url = "http://example.com/api/getdata";
$data = array('param1' => 'value1', 'param2' => 'value2');

$curl = curl_init($url);

curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));

$response = curl_exec($curl);
curl_close($curl);

$decoded_response = json_decode($response, true);

print_r($decoded_response);

让我们来逐行解释这段代码:

  • 在第 1 行中,我们定义了 API 的 URL。
  • 在第 2 行中,我们定义了需要传输的数据,通常以关联数组的形式存储。
  • 在第 4 行中,我们初始化了 cURL,并传入了 API 的 URL。
  • 在第 6 行中,我们设置了 cURL 的一些选项,其中 CURLOPT_RETURNTRANSFER 表示将响应存储在变量中而不是直接输出。
  • 在第 7 行中,我们设置了请求类型为 POST。
  • 在第 8 行中,我们将需要传输的数据转换成 JSON 格式,并作为参数传入请求中。
  • 在第 9 行中,我们设置了请求头,告诉 API 我们传输的是 JSON 格式的数据。
  • 在第 11 行中,我们执行了请求,并将响应存储到变量中。
  • 在第 12 行中,我们关闭了 cURL。
  • 在第 14 行中,我们将响应解码成 PHP 数组,并存储到变量中。
  • 在第 16 行中,我们输出了解码后的响应。
总结

发出 JSON 请求可以通过 cURL 扩展来实现。我们需要将需要传输的数据转换成 JSON 格式,并设置请求头。最后,我们将响应解码成 PHP 数组以便处理。希望这篇文章能对 PHP 开发者有所帮助。