在 PHP 中读取 REST API 响应

2024-04-16

我正在尝试阅读 Raven SEO Tools API。它是一个 REST API,目前当我通过 Web 浏览器请求 URL 时,它以 XML(或 JSON,如果我选择)的形式提供数据备份。将他们的服务器的响应获取到我自己的 PHP 脚本中供我使用的最佳方法是什么?

非常感谢任何帮助

Cheers


如果您只需要检索 URL 并解析其信息。最简单的方法是curl/JSON组合。请注意,解析 JSON 比解析 XML 更快。

  1. http://www.php.net/manual/en/function.curl-exec.php http://www.php.net/manual/en/function.curl-exec.php
  2. http://www.php.net/manual/en/function.json-decode.php http://www.php.net/manual/en/function.json-decode.php

简单的事情如下:

$url = "http://api.raventools.com/api?key=B1DFC59CA6EC76FF&method=domains&format=json";
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT, 4);
$json = curl_exec($ch);
if(!$json) {
    echo curl_error($ch);
}
curl_close($ch);
print_r(json_decode($json));

但如果您需要从此 API 调用其他方法,例如 DELETE/PUT 等。那么在 PHP 中使用 REST 客户端是更优雅的解决方案。这些客户的比较可以在PHP REST 客户端 https://stackoverflow.com/questions/894268/php-rest-clients

我专门为 Raven API 创建了这段代码https://github.com/stephenyeargin/raventools-api-php https://github.com/stephenyeargin/raventools-api-php

示例代码:

require 'path/to/raventools-api-php/raventools-api-php.class.php';
$Raven = new RavenTools( 'B1DFC59CA6EC76FF' );
$method = 'domains';
$options = array('format'=> 'json');
$responseString = $Raven->getJSON($method, $options);
print_r(json_decode($responseString));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 PHP 中读取 REST API 响应 的相关文章

随机推荐

  • 如何检查一个类没有参数构造函数

    Object obj new Object try obj getClass getConstructor catch SecurityException e e printStackTrace catch NoSuchMethodExce
  • 重新创建一棵扁平的树

    我有一个地图向量 我想以嵌套方式对其进行转换 数据结构如下 def data id 1 name a parent 0 id 2 name b parent 0 id 3 name c parent 0 id 4 name a 1 pare
  • 如何在 Backbone.js 中加载具有外键关系的子模型?

    抱歉 如果这有点复杂 我仍在学习 Backbone js 加载和保存内部具有子模型的 Backbone 模型的正确方法是什么 我什至应该有子模型吗 例如 请原谅咖啡脚本 如果我有类似的东西 class Address extends Bac
  • 运行为包:不可调试

    我正在尝试从我的 Android 设备 运行 One UI 2 0 的非 root Exynos Galaxy S9 中提取数据库文件 每次打开 Android Studio 3 6 2 gt 设备文件资源管理器时 我都会收到消息 run
  • 如何告诉 Json.NET 忽略第 3 方对象中的属性?

    Json NET 文档说你使用JsonIgnore不要序列化类中的某些属性 public class Account public string FullName get set public string EmailAddress get
  • Azure 应用服务默认超时值是什么以及在哪里?

    是否可以使用门户 Powershell CLI 在 Azure 中查看或更改 Azure 应用服务的默认超时 这是常规设置的参考 我找不到 根据穆贡丹 拉文德兰 https learn microsoft com en us answers
  • 如何使 java.awt.FileDialog 在屏幕上居中

    我一直无法弄清楚这个问题 通常的嫌疑人不起作用 Given FileDialog dlg null dlg new FileDialog owner Select File to Load FileDialog LOAD dlg setFi
  • 将子视图添加到 UITableViewCell

    当我向 UITableViewCell 添加子视图时遇到问题 当表格尺寸低于 iPhone 尺寸时 它可以工作 但是当尺寸更大时 当我滚动时会产生一些可怕的效果 它应该是这样的 Then I think it comes from the
  • NSScrollView 检测滚动位置

    当滚动在底部时如何检测滚动位置 scrollView contentView setPostsBoundsChangedNotifications YES NSNotificationCenter defaultCenter addObse
  • 在 MATLAB 中使用 sprintf 显示变量的小数

    我不明白接下来会发生什么sprintf http www mathworks se help techdoc ref sprintf html命令 gt gt vpa exp 1 53 ans 2 718281828459045534884
  • 如何将 #hash 单击添加到元素

    当我打开我的页面时http www mywebsite com http www mywebsite com 我有这个 jQuery 代码 locSlideButton2 click function 我想要 点击locSlideButto
  • grep 匹配的行和字符串位置

    我需要找到一种方法将 grep 匹配的精确坐标从一个文件输出到另一个文件 所以说 模式 包含要匹配的字符串模式列表 搜索 是一个基于行的文本 ASCII 文件 其中包含要搜索的文本 with grep onf patterns search
  • ngClass 可以在 Angular 2 中使用三元运算符吗?

    在 Angular 1 中 下面的代码运行良好 div 但是当我尝试在 Angular 2 中做类似的事情时 它不起作用 我已经添加了directives NgClass div 我应该如何在 Angular 2 中编写 谢谢 编辑 这是我
  • 错误 1148 MySQL 此 MySQL 版本不允许使用的命令

    我正在使用MySQLLOAD DATA LOCAL INFILE命令 我收到此错误 PDOException SQLSTATE 42000 Syntax error or access violation 1148 The used com
  • 浏览器上的连续语音识别,例如“ok google”或“hey siri”

    我正在做一个 POC 我的要求是我想实现这样的功能OK google or Hey Siri在浏览器上 我正在使用 Chrome 浏览器Web speech api 我注意到我无法继续识别 因为它会在一段时间后自动终止 而且我知道出于安全考
  • NodeJS Websocket如何在服务器重新启动时重新连接

    在 Node js 中我使用网络套接字 ws https github com websockets ws用于 WebSocket 连接 以下是客户端的代码 假设我们正在连接的服务器套接字宕机了一分钟 close 事件将会触发 但是每当服务
  • 在 C++ 和 Java 中声明对象

    我已经使用c 有一段时间了 我正在学习java 在java中声明对象让我很困惑 在java中我们写 myclass myobject new myclass myobject mymethod 和c 中的这段代码一样吗 myclass my
  • D3JS:将时间序列数据中缺失的时间值插入为空

    我正在尝试使用 D3 绘制时间序列数据 但遇到了缺少时间戳和宽度调整的问题 数据通常每 5 分钟发布一次 但由于某种原因有时可能没有时间戳 例如 上午 11 45 之后 下一个时间戳将为 23 45 我想在中间有一个间隙 而不是在该时间段内
  • 正则表达式允许除空格或所有空格之外的任何内容? [复制]

    这个问题在这里已经有答案了 我想允许任何事情和一切 除了空白条目 NULL 零字符 无论你想怎么称呼它 以及任何长度的空格之外 都不应该允许 如果我使用某种语言进行编码 这本质上就是我使用 TRIM 函数所做的事情 但我需要仅使用正则表达式
  • 在 PHP 中读取 REST API 响应

    我正在尝试阅读 Raven SEO Tools API 它是一个 REST API 目前当我通过 Web 浏览器请求 URL 时 它以 XML 或 JSON 如果我选择 的形式提供数据备份 将他们的服务器的响应获取到我自己的 PHP 脚本中