以下是 HTTP API 的一些高级用法。
其他方法
GET 和 POST 是发起 HTTP 请求时最常用的方法,但还有许多其他方法,例如 DELETE、PUT、PATCH、OPTIONS 等。
WordPress HTTP API 没有为每种方法提供特定的辅助函数,但请放心,开发 WordPress 的杰出团队已经考虑到这一点,并贴心地提供了 wp_remote_request()。该函数接受与 wp_remote_get() 相同的两个参数,并允许您指定 HTTP 方法。您需要传递什么数据取决于您的方法。
例如,发送 DELETE 方法时,代码可能如下所示:
$args = array(
'method' => 'DELETE',
);
$response = wp_remote_request( 'http://some-api.com/object/to/delete', $args );选项
如您现在可能已经注意到,所有辅助函数都接受第二个 $args 参数,允许您设置请求的其他选项。
例如,timeout 用于设置连接断开并返回错误之前的秒数。httpversion 参数设置 HTTP 版本,默认值为 '1.0',但根据您交互的服务不同,您可能需要将其设置为 '1.1'。
请查阅 WP_Http::request() 方法的文档以获取所有可用选项及其说明。
头部信息
在获取资源之前使用 HEAD 检查资源状态可能非常重要,有时也是 API 所要求的。在高流量的 API 中,GET 请求通常每分钟或每小时有数量限制。除非 HEAD 请求显示 API 上的数据已更新,否则无需尝试 GET 请求。
回到 GitHub 示例,这里有一些需要注意的头部信息。大多数这些头部信息是标准的,但您始终应查阅 API 文档以确保您了解每个头部信息的名称及其用途。
x-ratelimit-limit– 时间段内允许的请求数量x-ratelimit-remaining– 时间段内剩余的可用请求数量content-length– 内容的大小(字节)。如果内容较大,可用于警告用户last-modified– 资源上次修改的时间。对缓存工具非常有用cache-control– 客户端应如何处理缓存
以下代码将检查我的 GitHub 用户账户的 HEAD 值:
$response = wp_remote_head( 'https://api.github.com/users/wordpress' );$response 的外观应类似于:
Array(
[headers] => Array
(
[server] => nginx
[date] => Fri, 05 Oct 2012 05:21:26 GMT
[content-type] => application/json; charset=utf-8
[connection] => close
[status] => 200 OK
[vary] => Accept
[x-ratelimit-remaining] => 4982
[content-length] => 594
[last-modified] => Fri, 05 Oct 2012 04:39:58 GMT
[etag] => "5d5e6f7a09462d6a2b473fb616a26d2a"
[x-github-media-type] => github.beta
[cache-control] => public, s-maxage=60, max-age=60
[x-content-type-options] => nosniff
[x-ratelimit-limit] => 5000
)
[body] =>
[response] => Array
(
[preserved_text 39a8515bd2dce2aa06ee8a2a6656b1de /] => 200
[message] => OK
)
[cookies] => Array(
)
[filename] =>
)
所有相同的辅助函数均可在此函数中使用,与前面两个函数一样。这里的例外情况是 HEAD 永远不会返回 body,因此该元素将始终为空。