php - 如何与 Web XML/JSON API 交互?

标签 php xml json api

我正在自学 php/xml/json 和其他所有东西,并且我正在通过 API 来处理某些事情。他们有文档,但我仍然不明白 API 的工作原理。他们给你一个 GET 链接和 API key ,我知道你应该将 API key 放在请求链接中

如何调用此链接?当它给您一个示例响应时,这意味着什么?

如果你的请求是正确的,响应应该出来吗?

我是不是有点笨?

谢谢

最佳答案

在 PHP 中你可能有这样的东西:

// EDIT: only need to use urlencode() on user supplied variables
//$url = urlencode("http://xyz.com/api?apikey=foo&v1=bar&v2=baz");
$url = "http://xyz.com/api?apikey=foo&v1=bar&v2=baz";
$response = file_get_contents($url);

$response 将包含您访问 xyz.com 时输出的任何 $url 的字符串(这是您直接访问 $url 时会看到的内容)。

您的下一个工作是根据其数据结构(例如 XML、JSON 等)解析 $response,以便您的其余代码可以使用它。

有几个用于解析 XML 或 JSON 的 PHP 库。就个人而言,我更喜欢使用 SimpleXMLElementjson_decode(),它们包含在 PHP 5 >= 5.2.0 中。

根据 API,如果它不理解您可以在解析响应后检查的请求 $url,它可能会向您发送某种错误代码/响应结构。

如果 $response 返回 false,那么通常在与 $url 通信时出现了一些错误。

我发现考虑这些 XHR 请求的一种直观方式是将参数(GET 参数)传递给函数(API URL)。 API URL 的响应就像函数的返回语句。

更新:

OP 在评论中建议的 Groupon API 示例:

$apikey = "client_id=abcd1234567890";
$division = "division_id=chicago";
$url = "http://api.groupon.com/v2/deals?" . implode("&", array($apikey, $division));
$response = file_get_contents($url);
$deals = json_decode($response, true);

foreach($deals['deals'] as $deal){
    $format = 'Deal: <a href="%s">%s</a><br/>';
    echo sprintf( $format, $deal['dealURL'], $deal['announcementTitle']);
}

以上代码将打印出芝加哥地区所有交易标题和 URL 的列表。如果您查看 Groupon API 页面上的 Sample JSON Response 部分,它将为您提供将映射到关联数组 $deals 的整个数据结构。

如果用户向 API 提供了任何 GET 参数(例如从 Web 表单),您将需要执行类似 $division = "division_id=" . urlencode($user_input); 的操作。

关于php - 如何与 Web XML/JSON API 交互?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5503604/

相关文章:

php - 对于每个不同的图像尺寸,保持 Div 尺寸相同?

PHP JSON 解码 : array with '$' problem

php - 在 PHP 中比较具有数百万条记录的两列

php - CMS还是Framework全面发展?

java - 系统服务不可用异常SimpleAdapter Android

javascript - 如何在我们的[跨域问题]之外的另一个域上加载XML文件

javascript - 在 mapbox-gl-js 中居中文本标签?

javascript - 需要串起来吗?将对象数组从 javascript 发送到 PHP 的数据格式困惑

ios - 如何为我的登录设置 API 请求?

sql-server - 使用 T-SQL 有条件地删除 SQL Server 中 XML 字段中的 XML 元素